Hello community,

here is the log from the commit of package kernel-source for openSUSE:13.1 
checked in at 2013-10-24 14:08:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/kernel-source (Old)
 and      /work/SRC/openSUSE:13.1/.kernel-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kernel-source"

Changes:
--------
--- /work/SRC/openSUSE:13.1/kernel-source/kernel-cubox.changes  2013-10-21 
12:29:46.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.kernel-source.new/kernel-cubox.changes     
2013-10-24 14:08:58.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Oct 22 21:17:47 CEST 2013 - je...@suse.com
+
+- nouveau: Fix race with fence signaling (bnc#844177).
+- commit 8d7989b
+
+-------------------------------------------------------------------
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-exynos.changes: same change
kernel-lpae.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-trace.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kernel-cubox.spec ++++++
--- /var/tmp/diff_new_pack.Cprj4m/_old  2013-10-24 14:09:01.000000000 +0200
+++ /var/tmp/diff_new_pack.Cprj4m/_new  2013-10-24 14:09:01.000000000 +0200
@@ -61,7 +61,7 @@
 Summary:        Kernel for SolidRun Cubox
 Version:        3.11.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g9ca6827
+Release:        <RELEASE>.g8d7989b
 %else
 Release:        0
 %endif

kernel-debug.spec: same change
kernel-default.spec: same change
kernel-desktop.spec: same change
kernel-docs.spec: same change
kernel-ec2.spec: same change
kernel-exynos.spec: same change
kernel-lpae.spec: same change
kernel-pae.spec: same change
kernel-source.spec: same change
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.Cprj4m/_old  2013-10-24 14:09:01.000000000 +0200
+++ /var/tmp/diff_new_pack.Cprj4m/_new  2013-10-24 14:09:01.000000000 +0200
@@ -26,7 +26,7 @@
 Version:        3.11.6
 %if %using_buildservice
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g9ca6827
+Release:        <RELEASE>.g8d7989b
 %else
 Release:        0
 %endif

++++++ kernel-trace.spec ++++++
--- /var/tmp/diff_new_pack.Cprj4m/_old  2013-10-24 14:09:01.000000000 +0200
+++ /var/tmp/diff_new_pack.Cprj4m/_new  2013-10-24 14:09:01.000000000 +0200
@@ -61,7 +61,7 @@
 Summary:        The Standard Kernel with Tracing Features
 Version:        3.11.6
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g9ca6827
+Release:        <RELEASE>.g8d7989b
 %else
 Release:        0
 %endif

kernel-vanilla.spec: same change
kernel-xen.spec: same change
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches.fixes/nouveau-fix-race-with-fence-signaling 
new/patches.fixes/nouveau-fix-race-with-fence-signaling
--- old/patches.fixes/nouveau-fix-race-with-fence-signaling     1970-01-01 
01:00:00.000000000 +0100
+++ new/patches.fixes/nouveau-fix-race-with-fence-signaling     2013-10-22 
21:17:47.000000000 +0200
@@ -0,0 +1,58 @@
+From: Jeff Mahoney <je...@suse.com>
+Subject: nouveau: Fix race with fence signaling
+References: bnc#844177
+Patch-mainline: Submitted to LKML and dri-devel, 22 Oct 2013
+
+There exists a tight race between the call to nouveau_fence_done from
+nouveau_fence_wait and the call to nouveau_fence_wait_uevent.
+
+nouveau_fence_done checks to see if fence->channel is NULL before calling
+nouveau_fence_wait_uevent, but it's not good enough since the dereference
+in nouveau_fence_wait_uevent is done outside the lock. Another thread
+may have signaled the fence in that tight window and then we Oops
+while dereferencing fence->channel->drm at the beginning of
+nouveau_fence_wait_uevent.
+
+The good news is that nouveau_fence_wait_uevent only uses fence->channel
+directly to grab the chan->drm pointer. If we pass that in directly as
+a known good pointer, we can avoid the race. Passing the nouveau_fence_done
+check in the caller ensures that the pointer is valid.
+
+Original bug report at: https://bugzilla.novell.com/show_bug.cgi?id=844177
+
+Signed-off-by: Jeff Mahoney <je...@suse.com>
+Cc: <sta...@vger.kernel.org> # 3.9+
+Cc: Ben Skeggs <bske...@redhat.com>
+---
+ drivers/gpu/drm/nouveau/nouveau_fence.c |   11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+--- a/drivers/gpu/drm/nouveau/nouveau_fence.c  2013-09-02 16:46:10.000000000 
-0400
++++ b/drivers/gpu/drm/nouveau/nouveau_fence.c  2013-10-22 15:03:11.079322230 
-0400
+@@ -180,12 +180,11 @@ nouveau_fence_wait_uevent_handler(struct
+ }
+ 
+ static int
+-nouveau_fence_wait_uevent(struct nouveau_fence *fence, bool intr)
+-
++nouveau_fence_wait_uevent(struct nouveau_fence *fence,
++                        struct nouveau_drm *drm, bool intr)
+ {
+-      struct nouveau_channel *chan = fence->channel;
+-      struct nouveau_fifo *pfifo = nouveau_fifo(chan->drm->device);
+-      struct nouveau_fence_priv *priv = chan->drm->fence;
++      struct nouveau_fifo *pfifo = nouveau_fifo(drm->device);
++      struct nouveau_fence_priv *priv = drm->fence;
+       struct nouveau_fence_uevent uevent = {
+               .handler.func = nouveau_fence_wait_uevent_handler,
+               .priv = priv,
+@@ -241,7 +240,7 @@ nouveau_fence_wait(struct nouveau_fence
+       int ret = 0;
+ 
+       while (priv && priv->uevent && lazy && !nouveau_fence_done(fence)) {
+-              ret = nouveau_fence_wait_uevent(fence, intr);
++              ret = nouveau_fence_wait_uevent(fence, chan->drm, intr);
+               if (ret < 0)
+                       return ret;
+       }
+

++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.Cprj4m/_old  2013-10-24 14:09:02.000000000 +0200
+++ /var/tmp/diff_new_pack.Cprj4m/_new  2013-10-24 14:09:02.000000000 +0200
@@ -423,6 +423,7 @@
        patches.drivers/drm-i915-Undo-the-PIPEA-quirk-for-i845
        patches.drivers/drm-cirrus-Correct-register-values-for-16bpp
        patches.drivers/drm-cirrus-Use-16bpp-as-default
+       patches.fixes/nouveau-fix-race-with-fence-signaling
 
        ########################################################
        # video4linux

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.Cprj4m/_old  2013-10-24 14:09:02.000000000 +0200
+++ /var/tmp/diff_new_pack.Cprj4m/_new  2013-10-24 14:09:02.000000000 +0200
@@ -1,3 +1,3 @@
-2013-10-18 22:19:21 +0200
-GIT Revision: 9ca682723fc05ad45374698171bb7b55ecb0d04c
+2013-10-22 21:17:47 +0200
+GIT Revision: 8d7989b1da96f51a95fcdd352ec19f21351759f0
 GIT Branch: openSUSE-13.1

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to