<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - sna_driver causes X-server to get SIGSEGV"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=95185#c3">Comment # 3</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - sna_driver causes X-server to get SIGSEGV"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=95185">bug 95185</a>
              from <span class="vcard"><a class="email" href="mailto:jason.vas.dias@gmail.com" title="Jason Vas Dias <jason.vas.dias@gmail.com>"> <span class="fn">Jason Vas Dias</span></a>
</span></b>
        <pre>There are a few other places where the xf86-video-intel code 
core dumps on access to rq->bo - here are the ones I've found:

$ diff -U0 kgem.c~ kgem.c
--- kgem.c~     2016-04-25 23:32:41.073898879 +0000
+++ kgem.c      2016-04-28 18:04:21.161610936 +0000
@@ -2734,2 +2734,3 @@
-               if (__kgem_busy(kgem, rq->bo->handle))
-                       break;
+               if( (NULL != rq) && (NULL != rq->bo) ) 
+                 if (__kgem_busy(kgem, rq->bo->handle))
+                   break;
@@ -2789 +2790 @@
-       kgem->retire(kgem);
+        if(NULL != kgem->retire) kgem->retire(kgem);
@@ -2804 +2805 @@
-
+               if( (NULL != rq) && (NULL != rq->bo) )
@@ -2827 +2828,2 @@
-       if (__kgem_busy(kgem, rq->bo->handle)) {
+       if( (NULL != rq) && (NULL != rq->bo) )
+         if (__kgem_busy(kgem, rq->bo->handle)) {
@@ -2832,3 +2834,3 @@
-       }
-
-       DBG(("%s: ring=%d idle (handle=%d)\n",
+         }
+       if( (NULL != rq) && (NULL != rq->bo) )
+         DBG(("%s: ring=%d idle (handle=%d)\n",
@@ -2970,4 +2972,4 @@
-
-               if (kgem->fence[rq->ring] == NULL &&
-                   __kgem_busy(kgem, rq->bo->handle))
-                       kgem->fence[rq->ring] = rq;
+               if (kgem->fence[rq->ring] == NULL)                
+                  if( (NULL != rq) && (NULL != rq->bo) )
+                    if( __kgem_busy(kgem, rq->bo->handle) )
+                      kgem->fence[rq->ring] = rq;


The X-Server no longer coredumps, the display just goes black and 
the machine hangs on window manager start - it also happens with twm .

I guess I'll have to wait until I get access to another machine in order
to debug Xserver with GDB & get to the bottom of the problem.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>