Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2016-11-13 22:50:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-64kb.changes 2016-11-05 21:24:18.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-64kb.changes 2016-11-13 22:50:38.000000000 +0100 @@ -1,0 +2,33 @@ +Thu Nov 10 18:06:41 CET 2016 - jsl...@suse.cz + +- Linux 4.8.7 (CVE-2016-7042 bnc#1006417 bnc#1008880 boo#1006825 + bsc#1004517 bsc#1007653 boo#1003298 bsc#1007615). +- Delete + patches.drivers/0001-usbhid-add-ATEN-CS962-to-list-of-quirky-devices.patch. +- Delete + patches.fixes/0001-KEYS-Fix-short-sprintf-buffer-in-proc-keys-show-func.patch. +- Delete patches.fixes/ALSA-seq-Fix-time-account-regression. +- Delete + patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch. +- Delete + patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips. +- Delete + patches.fixes/drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-.patch. +- Delete + patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch. +- commit c8f02a2 + +------------------------------------------------------------------- +Tue Nov 8 10:11:45 CET 2016 - jthumsh...@suse.de + +- libfc: fix seconds_since_last_reset miscalculation (boo#1008745). +- commit da23b4a + +------------------------------------------------------------------- +Mon Nov 7 13:19:16 CET 2016 - jsl...@suse.cz + +- drm/i915/gen9: fix DDB partitioning for multi-screen cases + (bnc#1008880). +- commit 4a45dd3 + +------------------------------------------------------------------- kernel-debug.changes: same change 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-syzkaller.changes: same change kernel-vanilla.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-64kb.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 4.8 -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %define vanilla_only 0 @@ -60,9 +60,9 @@ Summary: Kernel with 64kb PAGE_SIZE License: GPL-2.0 Group: System/Kernel -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif kernel-debug.spec: same change kernel-default.spec: same change ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -16,7 +16,7 @@ # -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -33,9 +33,9 @@ Summary: Kernel Documentation (man pages) License: GPL-2.0 Group: Documentation/Man -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-lpae.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 4.8 -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %define vanilla_only 0 @@ -60,9 +60,9 @@ Summary: Kernel for LPAE enabled systems License: GPL-2.0 Group: System/Kernel -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -19,7 +19,7 @@ #!BuildIgnore: post-build-checks -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -51,9 +51,9 @@ Summary: package kernel and initrd for OBS VM builds License: GPL-2.0 Group: SLES -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-obs-qa.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -17,7 +17,7 @@ # needsrootforbuild -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -36,9 +36,9 @@ Summary: Basic QA tests for the kernel License: GPL-2.0 Group: SLES -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 4.8 -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %define vanilla_only 0 @@ -60,9 +60,9 @@ Summary: Kernel with PAE Support License: GPL-2.0 Group: System/Kernel -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.8 -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %define vanilla_only 0 @@ -30,9 +30,9 @@ Summary: The Linux Kernel Sources License: GPL-2.0 Group: Development/Sources -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -24,10 +24,10 @@ Summary: Kernel Symbol Versions (modversions) License: GPL-2.0 Group: Development/Sources -Version: 4.8.6 +Version: 4.8.7 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif ++++++ kernel-syzkaller.spec ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:44.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:44.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 4.8 -%define patchversion 4.8.6 +%define patchversion 4.8.7 %define variant %{nil} %define vanilla_only 0 @@ -60,9 +60,9 @@ Summary: Kernel used for fuzzing by syzkaller License: GPL-2.0 Group: System/Kernel -Version: 4.8.6 +Version: 4.8.7 %if 0%{?is_kotd} -Release: <RELEASE>.g1d89b44 +Release: <RELEASE>.gc8f02a2 %else Release: 0 %endif kernel-vanilla.spec: same change ++++++ patches.drivers.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/0001-usbhid-add-ATEN-CS962-to-list-of-quirky-devices.patch new/patches.drivers/0001-usbhid-add-ATEN-CS962-to-list-of-quirky-devices.patch --- old/patches.drivers/0001-usbhid-add-ATEN-CS962-to-list-of-quirky-devices.patch 2016-11-03 14:00:34.000000000 +0100 +++ new/patches.drivers/0001-usbhid-add-ATEN-CS962-to-list-of-quirky-devices.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,44 +0,0 @@ -From 0cc3b1eee3dde5162d9f05a050b0067d55e679ed Mon Sep 17 00:00:00 2001 -From: Oliver Neukum <oneu...@suse.com> -Date: Thu, 3 Nov 2016 12:16:18 +0100 -Subject: [PATCH] usbhid: add ATEN CS962 to list of quirky devices -References: bsc#1007615 -Patch-Mainline: Submitted (20161103 linux-...@vger.kernel.org) - -Like many similar devices it needs a quirk to work. -Issuing the request gets the device into an irrecoverable state. - -Signed-off-by: Oliver Neukum <oneu...@suse.com> -CC: sta...@vger.kernel.org ---- - drivers/hid/hid-ids.h | 1 + - drivers/hid/usbhid/hid-quirks.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 4ed9a4f..f6d1f34 100644 ---- a/drivers/hid/hid-ids.h -+++ b/drivers/hid/hid-ids.h -@@ -176,6 +176,7 @@ - #define USB_DEVICE_ID_ATEN_4PORTKVM 0x2205 - #define USB_DEVICE_ID_ATEN_4PORTKVMC 0x2208 - #define USB_DEVICE_ID_ATEN_CS682 0x2213 -+#define USB_DEVICE_ID_ATEN_CS692 0x8021 - - #define USB_VENDOR_ID_ATMEL 0x03eb - #define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c -diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c -index b4b8c6a..85d5ff2 100644 ---- a/drivers/hid/usbhid/hid-quirks.c -+++ b/drivers/hid/usbhid/hid-quirks.c -@@ -62,6 +62,7 @@ static const struct hid_blacklist { - { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS682, HID_QUIRK_NOGET }, -+ { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS692, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FIGHTERSTICK, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET }, --- -2.6.2 - ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-KEYS-Fix-short-sprintf-buffer-in-proc-keys-show-func.patch new/patches.fixes/0001-KEYS-Fix-short-sprintf-buffer-in-proc-keys-show-func.patch --- old/patches.fixes/0001-KEYS-Fix-short-sprintf-buffer-in-proc-keys-show-func.patch 2016-11-03 09:36:24.000000000 +0100 +++ new/patches.fixes/0001-KEYS-Fix-short-sprintf-buffer-in-proc-keys-show-func.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,74 +0,0 @@ -From 03dab869b7b239c4e013ec82aea22e181e441cfc Mon Sep 17 00:00:00 2001 -From: David Howells <dhowe...@redhat.com> -Date: Wed, 26 Oct 2016 15:01:54 +0100 -Subject: [PATCH] KEYS: Fix short sprintf buffer in /proc/keys show function - -Git-commit: 03dab869b7b239c4e013ec82aea22e181e441cfc -Patch-mainline: v4.9-rc3 -References: bsc#1004517, CVE-2016-7042 - -This fixes CVE-2016-7042. - -Fix a short sprintf buffer in proc_keys_show(). If the gcc stack protector -is turned on, this can cause a panic due to stack corruption. - -The problem is that xbuf[] is not big enough to hold a 64-bit timeout -rendered as weeks: - - (gdb) p 0xffffffffffffffffULL/(60*60*24*7) - $2 = 30500568904943 - -That's 14 chars plus NUL, not 11 chars plus NUL. - -Expand the buffer to 16 chars. - -I think the unpatched code apparently works if the stack-protector is not -enabled because on a 32-bit machine the buffer won't be overflowed and on a -64-bit machine there's a 64-bit aligned pointer at one side and an int that -isn't checked again on the other side. - -The panic incurred looks something like: - -Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: ffffffff81352ebe -CPU: 0 PID: 1692 Comm: reproducer Not tainted 4.7.2-201.fc24.x86_64 #1 -Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011 - 0000000000000086 00000000fbbd2679 ffff8800a044bc00 ffffffff813d941f - ffffffff81a28d58 ffff8800a044bc98 ffff8800a044bc88 ffffffff811b2cb6 - ffff880000000010 ffff8800a044bc98 ffff8800a044bc30 00000000fbbd2679 -Call Trace: - [<ffffffff813d941f>] dump_stack+0x63/0x84 - [<ffffffff811b2cb6>] panic+0xde/0x22a - [<ffffffff81352ebe>] ? proc_keys_show+0x3ce/0x3d0 - [<ffffffff8109f7f9>] __stack_chk_fail+0x19/0x30 - [<ffffffff81352ebe>] proc_keys_show+0x3ce/0x3d0 - [<ffffffff81350410>] ? key_validate+0x50/0x50 - [<ffffffff8134db30>] ? key_default_cmp+0x20/0x20 - [<ffffffff8126b31c>] seq_read+0x2cc/0x390 - [<ffffffff812b6b12>] proc_reg_read+0x42/0x70 - [<ffffffff81244fc7>] __vfs_read+0x37/0x150 - [<ffffffff81357020>] ? security_file_permission+0xa0/0xc0 - [<ffffffff81246156>] vfs_read+0x96/0x130 - [<ffffffff81247635>] SyS_read+0x55/0xc0 - [<ffffffff817eb872>] entry_SYSCALL_64_fastpath+0x1a/0xa4 - -Reported-by: Ondrej Kozina <okoz...@redhat.com> -Signed-off-by: David Howells <dhowe...@redhat.com> -Tested-by: Ondrej Kozina <okoz...@redhat.com> -cc: sta...@vger.kernel.org -Signed-off-by: James Morris <james.l.mor...@oracle.com> -Acked-by: Lee, Chun-Yi <j...@suse.com> ---- - security/keys/proc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/security/keys/proc.c -+++ b/security/keys/proc.c -@@ -181,7 +181,7 @@ static int proc_keys_show(struct seq_fil - struct timespec now; - unsigned long timo; - key_ref_t key_ref, skey_ref; -- char xbuf[12]; -+ char xbuf[16]; - int rc; - - struct keyring_search_context ctx = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-libfc-fix-seconds_since_last_reset-miscalculation.patch new/patches.fixes/0001-libfc-fix-seconds_since_last_reset-miscalculation.patch --- old/patches.fixes/0001-libfc-fix-seconds_since_last_reset-miscalculation.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/0001-libfc-fix-seconds_since_last_reset-miscalculation.patch 2016-11-10 18:06:41.000000000 +0100 @@ -0,0 +1,49 @@ +From e559bbb0e6ba91e98a834630260b2da6af316d63 Mon Sep 17 00:00:00 2001 +From: Johannes Thumshirn <jthumsh...@suse.de> +Date: Mon, 7 Nov 2016 12:07:01 +0100 +Subject: [PATCH] libfc: fix seconds_since_last_reset miscalculation +Patch-mainline: Submitted, https://patchwork.kernel.org/patch/9416885/ +References: boo#1008745 + +Commit 540eb1eef 'scsi: libfc: fix seconds_since_last_reset calculation' +removed the use of 'struct timespec' from fc_get_host_stats(). This broke the +output of 'fcoeadm -s' after kernel 4.8-rc1 as lport->boot_time - jiffies +could become negative as in this example: + +$ cat /sys/class/fc_host/host8/statistics/seconds_since_last_reset +0x10624dd2f1977b4 + +Take this into account so +/sys/class/fc_host/hostX/statistics/seconds_since_last_reset is sane again. + +Fixes: 540eb1eef ('scsi: libfc: fix seconds_since_last_reset calculation') +Signed-off-by: Johannes Thumshirn <jthumsh...@suse.de> +Tested-by: Holger Schranz <hol...@fam-schranz.de> +--- + drivers/scsi/libfc/fc_lport.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c +index 04ce7cf..475c0a9 100644 +--- a/drivers/scsi/libfc/fc_lport.c ++++ b/drivers/scsi/libfc/fc_lport.c +@@ -304,11 +304,15 @@ struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost) + unsigned int cpu; + u64 fcp_in_bytes = 0; + u64 fcp_out_bytes = 0; ++ unsigned long boot_time = lport->boot_time; + + fc_stats = &lport->host_stats; + memset(fc_stats, 0, sizeof(struct fc_host_statistics)); + +- fc_stats->seconds_since_last_reset = (lport->boot_time - jiffies) / HZ; ++ if (boot_time > jiffies) ++ fc_stats->seconds_since_last_reset = (boot_time - jiffies) / HZ; ++ else ++ fc_stats->seconds_since_last_reset = (jiffies - boot_time) / HZ; + + for_each_possible_cpu(cpu) { + struct fc_stats *stats; +-- +1.8.5.6 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/ALSA-seq-Fix-time-account-regression new/patches.fixes/ALSA-seq-Fix-time-account-regression --- old/patches.fixes/ALSA-seq-Fix-time-account-regression 2016-11-03 09:36:24.000000000 +0100 +++ new/patches.fixes/ALSA-seq-Fix-time-account-regression 1970-01-01 01:00:00.000000000 +0100 @@ -1,42 +0,0 @@ -From 9b50898ad96c793a8f7cde9d8f281596d752a7dd Mon Sep 17 00:00:00 2001 -From: Takashi Iwai <ti...@suse.de> -Date: Tue, 25 Oct 2016 15:56:35 +0200 -Subject: [PATCH] ALSA: seq: Fix time account regression -Git-commit: 9b50898ad96c793a8f7cde9d8f281596d752a7dd -Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git -Patch-mainline: Queued in subsystem maintainer repository -References: boo#1006825 - -The recent rewrite of the sequencer time accounting using timespec64 -in the commit [3915bf294652: ALSA: seq_timer: use monotonic times -internally] introduced a bad regression. Namely, the time reported -back doesn't increase but goes back and forth. - -The culprit was obvious: the delta is stored to the result (cur_time = -delta), instead of adding the delta (cur_time += delta)! - -Let's fix it. - -Fixes: 3915bf294652 ('ALSA: seq_timer: use monotonic times internally') -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=177571 -Reported-by: Yves Guillemot <yc.guille...@wanadoo.fr> -Cc: <sta...@vger.kernel.org> # v4.8+ -Signed-off-by: Takashi Iwai <ti...@suse.de> - ---- - sound/core/seq/seq_timer.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/sound/core/seq/seq_timer.c -+++ b/sound/core/seq/seq_timer.c -@@ -448,8 +448,8 @@ snd_seq_real_time_t snd_seq_timer_get_cu - - ktime_get_ts64(&tm); - tm = timespec64_sub(tm, tmr->last_update); -- cur_time.tv_nsec = tm.tv_nsec; -- cur_time.tv_sec = tm.tv_sec; -+ cur_time.tv_nsec += tm.tv_nsec; -+ cur_time.tv_sec += tm.tv_sec; - snd_seq_sanity_real_time(&cur_time); - } - spin_unlock_irqrestore(&tmr->lock, flags); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch new/patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch --- old/patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch 2016-11-03 09:36:24.000000000 +0100 +++ new/patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,91 +0,0 @@ -From: Chris Mason <c...@fb.com> -Subject: [PATCH] btrfs: fix races on root_log_ctx lists -Patch-mainline: Submitted, linux-bt...@vger.kernel.org, 27 Oct 2016 -References: bsc#1007653 - -btrfs_remove_all_log_ctxs takes a shortcut where it avoids walking the -list because it knows all of the waiters are patiently waiting for the -commit to finish. - -But, there's a small race where btrfs_sync_log can remove itself from -the list if it finds a log commit is already done. Also, it uses -list_del_init() to remove itself from the list, but there's no way to -know if btrfs_remove_all_log_ctxs has already run, so we don't know for -sure if it is safe to call list_del_init(). - -This gets rid of all the shortcuts for btrfs_remove_all_log_ctxs(), and -just calls it with the proper locking. - -This is part two of the corruption fixed by cbd60aa7cd1. I should have -done this in the first place, but convinced myself the optimizations were -safe. A 12 hour run of dbench 2048 will eventually trigger a list debug -WARN_ON for the list_del_init() in btrfs_sync_log(). - -Fixes: d1433debe7f4346cf9fc0dafc71c3137d2a97bc4 -Reported-by: Dave Jones <da...@codemonkey.org.uk> -cc: sta...@vger.kernel.org # 3.15+ -Signed-off-by: Chris Mason <c...@fb.com> -Acked-by: Jeff Mahoney <je...@suse.com> ---- - fs/btrfs/tree-log.c | 20 ++++++-------------- - 1 file changed, 6 insertions(+), 14 deletions(-) - -diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c -index 688df71..4b1c0a6 100644 ---- a/fs/btrfs/tree-log.c -+++ b/fs/btrfs/tree-log.c -@@ -2713,14 +2713,12 @@ static inline void btrfs_remove_all_log_ctxs(struct btrfs_root *root, - int index, int error) - { - struct btrfs_log_ctx *ctx; -+ struct btrfs_log_ctx *safe; - -- if (!error) { -- INIT_LIST_HEAD(&root->log_ctxs[index]); -- return; -- } -- -- list_for_each_entry(ctx, &root->log_ctxs[index], list) -+ list_for_each_entry_safe(ctx, safe, &root->log_ctxs[index], list) { -+ list_del_init(&ctx->list); - ctx->log_ret = error; -+ } - - INIT_LIST_HEAD(&root->log_ctxs[index]); - } -@@ -2961,13 +2959,9 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans, - mutex_unlock(&root->log_mutex); - - out_wake_log_root: -- /* -- * We needn't get log_mutex here because we are sure all -- * the other tasks are blocked. -- */ -+ mutex_lock(&log_root_tree->log_mutex); - btrfs_remove_all_log_ctxs(log_root_tree, index2, ret); - -- mutex_lock(&log_root_tree->log_mutex); - log_root_tree->log_transid_committed++; - atomic_set(&log_root_tree->log_commit[index2], 0); - mutex_unlock(&log_root_tree->log_mutex); -@@ -2978,10 +2972,8 @@ out_wake_log_root: - if (waitqueue_active(&log_root_tree->log_commit_wait[index2])) - wake_up(&log_root_tree->log_commit_wait[index2]); - out: -- /* See above. */ -- btrfs_remove_all_log_ctxs(root, index1, ret); -- - mutex_lock(&root->log_mutex); -+ btrfs_remove_all_log_ctxs(root, index1, ret); - root->log_transid_committed++; - atomic_set(&root->log_commit[index1], 0); - mutex_unlock(&root->log_mutex); --- -2.9.3 - --- -To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in -the body of a message to majord...@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips new/patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips --- old/patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips 2016-11-03 09:36:24.000000000 +0100 +++ new/patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips 1970-01-01 01:00:00.000000000 +0100 @@ -1,53 +0,0 @@ -From: Takashi Iwai <ti...@suse.de> -Subject: [PATCH v2] drm/fb-helper: Don't call dirty callback for untouched clips -Date: Thu, 20 Oct 2016 17:05:30 +0200 -Message-id: <20161020150530.5787-1-ti...@suse.de> -Patch-mainline: Submitted, dri-devel ML -References: boo#1003298 - -Since 4.7 kernel, we've seen the error messages like - - kernel: [TTM] Buffer eviction failed - kernel: qxl 0000:00:02.0: object_init failed for (4026540032, 0x00000001) - kernel: [drm:qxl_alloc_bo_reserved [qxl]] *ERROR* failed to allocate VRAM BO - -on QXL when switching and accessing on VT. The culprit was the -generic deferred_io code (qxl driver switched to it since 4.7). -There is a race between the dirty clip update and the call of -callback. - -In drm_fb_helper_dirty(), the dirty clip is updated in the spinlock, -while it kicks off the update worker outside the spinlock. Meanwhile -the update worker clears the dirty clip in the spinlock, too. Thus, -when drm_fb_helper_dirty() is called concurrently, schedule_work() is -called after the clip is cleared in the first worker call. - -This patch addresses it by validating the clip before calling the -dirty fb callback. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98322 -Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1003298 -Fixes: eaa434defaca ('drm/fb-helper: Add fb_deferred_io support') -Cc: <sta...@vger.kernel.org> -Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com> -Signed-off-by: Takashi Iwai <ti...@suse.de> - ---- -v1->v2: simplified the code as suggested by Ville - - drivers/gpu/drm/drm_fb_helper.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/gpu/drm/drm_fb_helper.c -+++ b/drivers/gpu/drm/drm_fb_helper.c -@@ -644,7 +644,9 @@ static void drm_fb_helper_dirty_work(str - clip->x2 = clip->y2 = 0; - spin_unlock_irqrestore(&helper->dirty_lock, flags); - -- helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, &clip_copy, 1); -+ /* call dirty callback only when it has been really touched */ -+ if (clip_copy.x1 < clip_copy.x2 && clip_copy.y1 < clip_copy.y2) -+ helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, &clip_copy, 1); - } - - /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch new/patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch --- old/patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch 2016-11-03 09:36:24.000000000 +0100 +++ new/patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,62 +0,0 @@ -From: Thomas Gleixner <t...@linutronix.de> -Date: Sat, 29 Oct 2016 13:42:42 +0200 -Subject: x86/smpboot: Init apic mapping before usage -Git-commit: 1e90a13d0c3dc94512af1ccb2b6563e8297838fa -Patch-mainline: v4.9-rc3 -References: bnc#1006417 - -The recent changes, which forced the registration of the boot cpu on UP -systems, which do not have ACPI tables, have been fixed for systems w/o -local APIC, but left a wreckage for systems which have neither ACPI nor -mptables, but the CPU has an APIC, e.g. virtualbox. - -The boot process crashes in prefill_possible_map() as it wants to register -the boot cpu, which needs to access the local apic, but the local APIC is -not yet mapped. - -There is no reason why init_apic_mapping() can't be invoked before -prefill_possible_map(). So instead of playing another silly early mapping -game, as the ACPI/mptables code does, we just move init_apic_mapping() -before the call to prefill_possible_map(). - -In hindsight, I should have noticed that combination earlier. - -Sorry for the churn (also in stable)! - -Fixes: ff8560512b8d ("x86/boot/smp: Don't try to poke disabled/non-existent APIC") -Reported-and-debugged-by: Michal Necasek <michal.neca...@oracle.com> -Reported-and-tested-by: Wolfgang Bauer <wba...@tmo.at> -Cc: pra...@redhat.com -Cc: ville.syrj...@linux.intel.com -Cc: michael.tha...@oracle.com -Cc: knut.osmund...@oracle.com -Cc: frank.mehn...@oracle.com -Cc: Borislav Petkov <b...@alien8.de> -Cc: sta...@vger.kernel.org -Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1610282114380.5053@nanos -Signed-off-by: Thomas Gleixner <t...@linutronix.de> -Signed-off-by: Jiri Slaby <jsl...@suse.cz> ---- - arch/x86/kernel/setup.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -1222,11 +1222,16 @@ void __init setup_arch(char **cmdline_p) - if (smp_found_config) - get_smp_config(); - -+ /* -+ * Systems w/o ACPI and mptables might not have it mapped the local -+ * APIC yet, but prefill_possible_map() might need to access it. -+ */ -+ init_apic_mappings(); -+ - prefill_possible_map(); - - init_cpu_to_node(); - -- init_apic_mappings(); - io_apic_init_mappings(); - - kvm_guest_init(); ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 4486 lines of diff (skipped) ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:45.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:45.000000000 +0100 @@ -33,6 +33,7 @@ patches.kernel.org/patch-4.8.3-4 patches.kernel.org/patch-4.8.4-5 patches.kernel.org/patch-4.8.5-6 + patches.kernel.org/patch-4.8.6-7 ######################################################## # Build fixes that apply to the vanilla kernel too. @@ -107,7 +108,6 @@ # Upstream commit c8b5db7de66b75330a96f9f1ad7376b89646c953 # changed this area a lot. +needs_updating patches.arch/x86_64-hpet-64bit-timer.patch - patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch ######################################################## # x86 MCE/MCA (Machine Check Error/Architecture) extensions @@ -252,7 +252,6 @@ patches.suse/btrfs-provide-super_operations-get_inode_dev patches.suse/revert-btrfs-fix-lockdep-warning-on-deadlock-against-an-inode-s-log-mutex.patch patches.suse/revert-btrfs-improve-performance-on-fsync-against-new-inode-after-rename-unlink.patch - patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch ######################################################## # Reiserfs Patches @@ -316,13 +315,12 @@ patches.fixes/sd_liberal_28_sense_invalid.diff patches.fixes/scsi-ibmvscsi-module_alias.patch - + patches.fixes/0001-libfc-fix-seconds_since_last_reset-miscalculation.patch ######################################################## # DRM/Video ######################################################## patches.fixes/drm-i915-Fix-S4-resume-breakage - patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips patches.drivers/drm-radeon-Always-store-CRTC-relative-radeon_crtc-cu patches.drivers/drm-radeon-Also-call-cursor_move_locked-when-the-cur patches.drivers/drm-radeon-Hide-the-HW-cursor-while-it-s-out-of-boun @@ -374,12 +372,10 @@ patches.drivers/Input-ALPS-handle-0-pressure-1F-events.patch patches.drivers/Input-ALPS-allow-touchsticks-to-report-pressure.patch patches.drivers/Input-ALPS-set-DualPoint-flag-for-74-03-28-devices.patch - patches.drivers/0001-usbhid-add-ATEN-CS962-to-list-of-quirky-devices.patch ########################################################## # Sound ########################################################## - patches.fixes/ALSA-seq-Fix-time-account-regression ######################################################## # Char / serial @@ -430,8 +426,6 @@ # ########################################################## - # Bug 1004517 CVE-2016-7042: kernel: Stack corruption while reading /proc/keys - patches.fixes/0001-KEYS-Fix-short-sprintf-buffer-in-proc-keys-show-func.patch ########################################################## # Audit ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.sHJvMU/_old 2016-11-13 22:50:45.000000000 +0100 +++ /var/tmp/diff_new_pack.sHJvMU/_new 2016-11-13 22:50:45.000000000 +0100 @@ -1,3 +1,3 @@ -2016-11-03 14:00:34 +0100 -GIT Revision: 1d89b442286067e71ee61ece724de522883ddc9a +2016-11-10 18:06:41 +0100 +GIT Revision: c8f02a2ee2f11267ebd79f5790ed60b4ea6a8969 GIT Branch: stable