Hello community,

here is the log from the commit of package kernel-source for openSUSE:Factory 
checked in at 2016-11-03 11:14:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-10-24 14:43:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-64kb.changes   
2016-11-03 11:14:03.000000000 +0100
@@ -1,0 +2,48 @@
+Mon Oct 31 13:02:56 CET 2016 - [email protected]
+
+- x86/smpboot: Init apic mapping before usage (bnc#1006417).
+- commit 7d70b08
+
+-------------------------------------------------------------------
+Mon Oct 31 12:53:57 CET 2016 - [email protected]
+
+- Linux 4.8.6 (: :).
+- commit dbb68be
+
+-------------------------------------------------------------------
+Sat Oct 29 03:16:07 CEST 2016 - [email protected]
+
+- btrfs: fix races on root_log_ctx lists (bsc#1007653).
+- commit 1e904fd
+
+-------------------------------------------------------------------
+Fri Oct 28 10:28:06 CEST 2016 - [email protected]
+
+- Linux 4.8.5 (: :).
+- commit 9148e7c
+
+-------------------------------------------------------------------
+Thu Oct 27 17:32:03 CEST 2016 - [email protected]
+
+- drm/radeon: Hide the HW cursor while it's out of bounds
+  (bsc#1000433).
+- drm/radeon: Also call cursor_move_locked when the cursor size
+  changes (bsc#1000433).
+- drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y
+  values (bsc#1000433).
+- commit 30e023d
+
+-------------------------------------------------------------------
+Tue Oct 25 16:31:30 CEST 2016 - [email protected]
+
+- ALSA: seq: Fix time account regression (boo#1006825).
+- commit 9168b92
+
+-------------------------------------------------------------------
+Tue Oct 25 10:21:05 CEST 2016 - [email protected]
+
+- drm/fb-helper: Don't call dirty callback for untouched clips
+  (boo#1003298).
+- commit 092ed80
+
+-------------------------------------------------------------------
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.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 4.8
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 4.8
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -19,7 +19,7 @@
 
 #!BuildIgnore: post-build-checks
 
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -17,7 +17,7 @@
 # needsrootforbuild
 
 
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 4.8
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -18,7 +18,7 @@
 
 
 %define srcversion 4.8
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -24,10 +24,10 @@
 Summary:        Kernel Symbol Versions (modversions)
 License:        GPL-2.0
 Group:          Development/Sources
-Version:        4.8.4
+Version:        4.8.6
 %if %using_buildservice
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %else
 Release:        0
 %endif

++++++ kernel-syzkaller.spec ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:11.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:11.000000000 +0100
@@ -20,7 +20,7 @@
 # needssslcertforbuild
 
 %define srcversion 4.8
-%define patchversion 4.8.4
+%define patchversion 4.8.6
 %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.4
+Version:        4.8.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g402d8c1
+Release:        <RELEASE>.g7d70b08
 %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/drm-radeon-Also-call-cursor_move_locked-when-the-cur 
new/patches.drivers/drm-radeon-Also-call-cursor_move_locked-when-the-cur
--- old/patches.drivers/drm-radeon-Also-call-cursor_move_locked-when-the-cur    
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/drm-radeon-Also-call-cursor_move_locked-when-the-cur    
2016-10-27 17:33:43.000000000 +0200
@@ -0,0 +1,46 @@
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <[email protected]>
+Date: Thu, 27 Oct 2016 16:59:42 +0900
+Subject: [PATCH 2/3] drm/radeon: Also call cursor_move_locked when the cursor 
size changes
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+References: bsc#1000433
+Patch-mainline: Submitted, amd-gfx ML
+
+The cursor size also affects the register programming.
+
+Cc: [email protected]
+Signed-off-by: Michel Dänzer <[email protected]>
+Signed-off-by: Takashi Iwai <[email protected]>
+
+---
+ drivers/gpu/drm/radeon/radeon_cursor.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_cursor.c
++++ b/drivers/gpu/drm/radeon/radeon_cursor.c
+@@ -297,12 +297,11 @@ int radeon_crtc_cursor_set2(struct drm_c
+               return ret;
+       }
+ 
+-      radeon_crtc->cursor_width = width;
+-      radeon_crtc->cursor_height = height;
+-
+       radeon_lock_cursor(crtc, true);
+ 
+-      if (hot_x != radeon_crtc->cursor_hot_x ||
++      if (width != radeon_crtc->cursor_width ||
++          height != radeon_crtc->cursor_height ||
++          hot_x != radeon_crtc->cursor_hot_x ||
+           hot_y != radeon_crtc->cursor_hot_y) {
+               int x, y;
+ 
+@@ -311,6 +310,8 @@ int radeon_crtc_cursor_set2(struct drm_c
+ 
+               radeon_cursor_move_locked(crtc, x, y);
+ 
++              radeon_crtc->cursor_width = width;
++              radeon_crtc->cursor_height = height;
+               radeon_crtc->cursor_hot_x = hot_x;
+               radeon_crtc->cursor_hot_y = hot_y;
+       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.drivers/drm-radeon-Always-store-CRTC-relative-radeon_crtc-cu 
new/patches.drivers/drm-radeon-Always-store-CRTC-relative-radeon_crtc-cu
--- old/patches.drivers/drm-radeon-Always-store-CRTC-relative-radeon_crtc-cu    
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/drm-radeon-Always-store-CRTC-relative-radeon_crtc-cu    
2016-10-27 17:33:43.000000000 +0200
@@ -0,0 +1,45 @@
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <[email protected]>
+Date: Thu, 27 Oct 2016 16:59:43 +0900
+Subject: [PATCH 1/3] drm/radeon: Always store CRTC relative 
radeon_crtc->cursor_x/y values
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+References: bsc#1000433
+Patch-mainline: Submitted, amd-gfx ML
+
+We were storing viewport relative coordinates for AVIVO/DCE display
+engines. However, radeon_crtc_cursor_set2 and radeon_cursor_reset pass
+radeon_crtc->cursor_x/y as the x/y parameters of
+radeon_cursor_move_locked, which would break if the CRTC isn't located
+at (0, 0).
+
+Cc: [email protected]
+Signed-off-by: Michel Dänzer <[email protected]>
+Signed-off-by: Takashi Iwai <[email protected]>
+
+---
+ drivers/gpu/drm/radeon/radeon_cursor.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_cursor.c
++++ b/drivers/gpu/drm/radeon/radeon_cursor.c
+@@ -143,6 +143,9 @@ static int radeon_cursor_move_locked(str
+       int xorigin = 0, yorigin = 0;
+       int w = radeon_crtc->cursor_width;
+ 
++      radeon_crtc->cursor_x = x;
++      radeon_crtc->cursor_y = y;
++
+       if (ASIC_IS_AVIVO(rdev)) {
+               /* avivo cursor are offset into the total surface */
+               x += crtc->x;
+@@ -229,9 +232,6 @@ static int radeon_cursor_move_locked(str
+                      yorigin * 256);
+       }
+ 
+-      radeon_crtc->cursor_x = x;
+-      radeon_crtc->cursor_y = y;
+-
+       return 0;
+ }
+ 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.drivers/drm-radeon-Hide-the-HW-cursor-while-it-s-out-of-boun 
new/patches.drivers/drm-radeon-Hide-the-HW-cursor-while-it-s-out-of-boun
--- old/patches.drivers/drm-radeon-Hide-the-HW-cursor-while-it-s-out-of-boun    
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/drm-radeon-Hide-the-HW-cursor-while-it-s-out-of-boun    
2016-10-27 17:33:43.000000000 +0200
@@ -0,0 +1,158 @@
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <[email protected]>
+Date: Thu, 27 Oct 2016 16:59:44 +0900
+Subject: [PATCH 3/3] drm/radeon: Hide the HW cursor while it's out of bounds
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+References: bsc#1000433
+Patch-mainline: Submitted, amd-gfx ML
+
+Fixes hangs in that case under some circumstances.
+
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1000433
+Cc: [email protected]
+Signed-off-by: Michel Dänzer <[email protected]>
+Signed-off-by: Takashi Iwai <[email protected]>
+
+---
+ drivers/gpu/drm/radeon/radeon_cursor.c |   66 
++++++++++++++++++++-------------
+ drivers/gpu/drm/radeon/radeon_mode.h   |    1 
+ 2 files changed, 42 insertions(+), 25 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_cursor.c
++++ b/drivers/gpu/drm/radeon/radeon_cursor.c
+@@ -90,6 +90,9 @@ static void radeon_show_cursor(struct dr
+       struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
+       struct radeon_device *rdev = crtc->dev->dev_private;
+ 
++      if (radeon_crtc->cursor_out_of_bounds)
++              return;
++
+       if (ASIC_IS_DCE4(rdev)) {
+               WREG32(EVERGREEN_CUR_SURFACE_ADDRESS_HIGH + 
radeon_crtc->crtc_offset,
+                      upper_32_bits(radeon_crtc->cursor_addr));
+@@ -146,21 +149,14 @@ static int radeon_cursor_move_locked(str
+       radeon_crtc->cursor_x = x;
+       radeon_crtc->cursor_y = y;
+ 
+-      if (ASIC_IS_AVIVO(rdev)) {
+-              /* avivo cursor are offset into the total surface */
+-              x += crtc->x;
+-              y += crtc->y;
+-      }
+-      DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y);
+-
+-      if (x < 0) {
++      if (x < 0)
+               xorigin = min(-x, radeon_crtc->max_cursor_width - 1);
+-              x = 0;
+-      }
+-      if (y < 0) {
++      if (y < 0)
+               yorigin = min(-y, radeon_crtc->max_cursor_height - 1);
+-              y = 0;
+-      }
++
++      x += crtc->x;
++      y += crtc->y;
++      DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y);
+ 
+       /* fixed on DCE6 and newer */
+       if (ASIC_IS_AVIVO(rdev) && !ASIC_IS_DCE6(rdev)) {
+@@ -183,27 +179,31 @@ static int radeon_cursor_move_locked(str
+               if (i > 1) {
+                       int cursor_end, frame_end;
+ 
+-                      cursor_end = x - xorigin + w;
++                      cursor_end = x + w;
+                       frame_end = crtc->x + crtc->mode.crtc_hdisplay;
+                       if (cursor_end >= frame_end) {
+                               w = w - (cursor_end - frame_end);
+                               if (!(frame_end & 0x7f))
+                                       w--;
+-                      } else {
+-                              if (!(cursor_end & 0x7f))
+-                                      w--;
++                      } else if (cursor_end <= 0) {
++                              goto out_of_bounds;
++                      } else if (!(cursor_end & 0x7f)) {
++                              w--;
+                       }
+                       if (w <= 0) {
+-                              w = 1;
+-                              cursor_end = x - xorigin + w;
+-                              if (!(cursor_end & 0x7f)) {
+-                                      x--;
+-                                      WARN_ON_ONCE(x < 0);
+-                              }
++                              goto out_of_bounds;
+                       }
+               }
+       }
+ 
++      if (x <= (crtc->x - w) || y <= (crtc->y - radeon_crtc->cursor_height) ||
++          x >= (crtc->x + crtc->mode.crtc_hdisplay) ||
++          y >= (crtc->y + crtc->mode.crtc_vdisplay))
++              goto out_of_bounds;
++
++      x += xorigin;
++      y += yorigin;
++
+       if (ASIC_IS_DCE4(rdev)) {
+               WREG32(EVERGREEN_CUR_POSITION + radeon_crtc->crtc_offset, (x << 
16) | y);
+               WREG32(EVERGREEN_CUR_HOT_SPOT + radeon_crtc->crtc_offset, 
(xorigin << 16) | yorigin);
+@@ -215,6 +215,9 @@ static int radeon_cursor_move_locked(str
+               WREG32(AVIVO_D1CUR_SIZE + radeon_crtc->crtc_offset,
+                      ((w - 1) << 16) | (radeon_crtc->cursor_height - 1));
+       } else {
++              x -= crtc->x;
++              y -= crtc->y;
++
+               if (crtc->mode.flags & DRM_MODE_FLAG_DBLSCAN)
+                       y *= 2;
+ 
+@@ -232,6 +235,19 @@ static int radeon_cursor_move_locked(str
+                      yorigin * 256);
+       }
+ 
++      if (radeon_crtc->cursor_out_of_bounds) {
++              radeon_crtc->cursor_out_of_bounds = false;
++              if (radeon_crtc->cursor_bo)
++                      radeon_show_cursor(crtc);
++      }
++
++      return 0;
++
++ out_of_bounds:
++      if (!radeon_crtc->cursor_out_of_bounds) {
++              radeon_hide_cursor(crtc);
++              radeon_crtc->cursor_out_of_bounds = true;
++      }
+       return 0;
+ }
+ 
+@@ -308,12 +324,12 @@ int radeon_crtc_cursor_set2(struct drm_c
+               x = radeon_crtc->cursor_x + radeon_crtc->cursor_hot_x - hot_x;
+               y = radeon_crtc->cursor_y + radeon_crtc->cursor_hot_y - hot_y;
+ 
+-              radeon_cursor_move_locked(crtc, x, y);
+-
+               radeon_crtc->cursor_width = width;
+               radeon_crtc->cursor_height = height;
+               radeon_crtc->cursor_hot_x = hot_x;
+               radeon_crtc->cursor_hot_y = hot_y;
++
++              radeon_cursor_move_locked(crtc, x, y);
+       }
+ 
+       radeon_show_cursor(crtc);
+--- a/drivers/gpu/drm/radeon/radeon_mode.h
++++ b/drivers/gpu/drm/radeon/radeon_mode.h
+@@ -330,6 +330,7 @@ struct radeon_crtc {
+       u16 lut_r[256], lut_g[256], lut_b[256];
+       bool enabled;
+       bool can_tile;
++      bool cursor_out_of_bounds;
+       uint32_t crtc_offset;
+       struct drm_gem_object *cursor_bo;
+       uint64_t cursor_addr;

++++++ patches.fixes.tar.bz2 ++++++
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      1970-01-01 
01:00:00.000000000 +0100
+++ new/patches.fixes/ALSA-seq-Fix-time-account-regression      2016-10-31 
13:02:56.000000000 +0100
@@ -0,0 +1,42 @@
+From 9b50898ad96c793a8f7cde9d8f281596d752a7dd Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <[email protected]>
+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 <[email protected]>
+Cc: <[email protected]> # v4.8+
+Signed-off-by: Takashi Iwai <[email protected]>
+
+---
+ 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       
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/btrfs-fix-races-on-root_log_ctx-lists.patch       
2016-10-31 13:02:56.000000000 +0100
@@ -0,0 +1,91 @@
+From: Chris Mason <[email protected]>
+Subject: [PATCH] btrfs: fix races on root_log_ctx lists
+Patch-mainline: Submitted, [email protected], 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 <[email protected]>
+cc: [email protected] # 3.15+
+Signed-off-by: Chris Mason <[email protected]>
+Acked-by: Jeff Mahoney <[email protected]>
+---
+ 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 [email protected]
+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    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/patches.fixes/drm-fb-helper-Dont-call-dirty-callback-for-untouched-clips    
    2016-10-31 13:02:56.000000000 +0100
@@ -0,0 +1,53 @@
+From: Takashi Iwai <[email protected]>
+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: <[email protected]>
+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: <[email protected]>
+Reviewed-by: Ville Syrjälä <[email protected]>
+Signed-off-by: Takashi Iwai <[email protected]>
+
+---
+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  
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/x86-smpboot-Init-apic-mapping-before-usage.patch  
2016-10-31 13:02:56.000000000 +0100
@@ -0,0 +1,62 @@
+From: Thomas Gleixner <[email protected]>
+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 <[email protected]>
+Reported-and-tested-by: Wolfgang Bauer <[email protected]>
+Cc: [email protected]
+Cc: [email protected]
+Cc: [email protected]
+Cc: [email protected]
+Cc: [email protected]
+Cc: Borislav Petkov <[email protected]>
+Cc: [email protected]
+Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1610282114380.5053@nanos
+Signed-off-by: Thomas Gleixner <[email protected]>
+Signed-off-by: Jiri Slaby <[email protected]>
+---
+ 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 ++++++
++++ 10835 lines of diff (skipped)

++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:12.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:12.000000000 +0100
@@ -31,6 +31,8 @@
        patches.kernel.org/patch-4.8.1-2
        patches.kernel.org/patch-4.8.2-3
        patches.kernel.org/patch-4.8.3-4
+       patches.kernel.org/patch-4.8.4-5
+       patches.kernel.org/patch-4.8.5-6
 
        ########################################################
        # Build fixes that apply to the vanilla kernel too.
@@ -105,6 +107,7 @@
        # 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
@@ -249,6 +252,7 @@
        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
@@ -318,6 +322,10 @@
        # 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
 
        ########################################################
        # video4linux
@@ -370,6 +378,7 @@
        ##########################################################
        # Sound
        ##########################################################
+       patches.fixes/ALSA-seq-Fix-time-account-regression
 
        ########################################################
        # Char / serial

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.NMBPIq/_old  2016-11-03 11:14:12.000000000 +0100
+++ /var/tmp/diff_new_pack.NMBPIq/_new  2016-11-03 11:14:12.000000000 +0100
@@ -1,3 +1,3 @@
-2016-10-22 13:24:48 +0200
-GIT Revision: 402d8c16f163d4be86517f973e3b943fda27923e
+2016-10-31 13:02:56 +0100
+GIT Revision: 7d70b08f854edbb0c97709bf8de6538858d68bcd
 GIT Branch: stable


Reply via email to