[beignet] 02/03: Fix another crash on unsupported hardware (#779213)

Rebecca Palmer rnpalmer-guest at moszumanska.debian.org
Thu Feb 26 16:37:39 UTC 2015


This is an automated email from the git hooks/post-receive script.

rnpalmer-guest pushed a commit to branch master
in repository beignet.

commit 01a475960aa4d50d0bd85f6aac257f1c6904eced
Author: Rebecca N. Palmer <rebecca_palmer at zoho.com>
Date:   Thu Feb 26 14:44:40 2015 +0000

    Fix another crash on unsupported hardware (#779213)
---
 debian/changelog                     |   2 +-
 debian/patches/fixcrash-779213.patch | 116 +++++++++++++++++++++++++++++++++++
 debian/patches/series                |   1 +
 3 files changed, 118 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index d5af6de..dd42120 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
 beignet (1.0.1-3) UNRELEASED; urgency=medium
 
-  * Fix crash on unsupported hardware.
+  * Fix two crashes on unsupported hardware.  (Closes: #779213)
 
  -- Rebecca N. Palmer <rebecca_palmer at zoho.com>  Thu, 26 Feb 2015 14:39:00 +0000
 
diff --git a/debian/patches/fixcrash-779213.patch b/debian/patches/fixcrash-779213.patch
new file mode 100644
index 0000000..cb23aef
--- /dev/null
+++ b/debian/patches/fixcrash-779213.patch
@@ -0,0 +1,116 @@
+Description: fix crash on unsupported hardware
+
+Author: Rebecca Palmer <rebecca_palmer at zoho.com>
+Bug-Debian: https://bugs.debian.org/779213
+diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c
+index 21546d9..e6878b3 100644
+--- a/src/intel/intel_driver.c
++++ b/src/intel/intel_driver.c
+@@ -124,14 +124,15 @@ intel_driver_aub_dump(intel_driver_t *driver)
+   }
+ }
+ 
+-static void
++static int
+ intel_driver_memman_init(intel_driver_t *driver)
+ {
+   driver->bufmgr = drm_intel_bufmgr_gem_init(driver->fd, BATCH_SIZE);
+-  assert(driver->bufmgr);
++  if(!driver->bufmgr) return 0;
+   drm_intel_bufmgr_gem_enable_reuse(driver->bufmgr);
+   driver->device_id = drm_intel_bufmgr_gem_get_devid(driver->bufmgr);
+   intel_driver_aub_dump(driver);
++  return 1;
+ }
+ 
+ static void
+@@ -149,14 +150,14 @@ intel_driver_context_destroy(intel_driver_t *driver)
+   driver->ctx = NULL;
+ }
+ 
+-static void 
++static int 
+ intel_driver_init(intel_driver_t *driver, int dev_fd)
+ {
+   driver->fd = dev_fd;
+   driver->locked = 0;
+   pthread_mutex_init(&driver->ctxmutex, NULL);
+ 
+-  intel_driver_memman_init(driver);
++  if(!intel_driver_memman_init(driver)) return 0;
+   intel_driver_context_init(driver);
+ 
+ #if EMULATE_GEN
+@@ -183,6 +184,7 @@ intel_driver_init(intel_driver_t *driver, int dev_fd)
+   else
+     driver->gen_ver = 4;
+ #endif /* EMULATE_GEN */
++  return 1;
+ }
+ 
+ static cl_int
+@@ -271,19 +273,20 @@ intel_driver_is_active(intel_driver_t *driver) {
+ LOCAL int 
+ intel_driver_init_shared(intel_driver_t *driver, dri_state_t *state)
+ {
++  int ret;
+   assert(state);
+   if(state->driConnectedFlag != DRI2)
+     return 0;
+-  intel_driver_init(driver, state->fd);
++  ret = intel_driver_init(driver, state->fd);
+   driver->need_close = 0;
+-  return 1;
++  return ret;
+ }
+ #endif
+ 
+ LOCAL int
+ intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
+ {
+-  int dev_fd;
++  int dev_fd, ret;
+ 
+   drm_client_t client;
+ 
+@@ -296,7 +299,7 @@ intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
+ 
+   // Check that we're authenticated
+   memset(&client, 0, sizeof(drm_client_t));
+-  int ret = ioctl(dev_fd, DRM_IOCTL_GET_CLIENT, &client);
++  ret = ioctl(dev_fd, DRM_IOCTL_GET_CLIENT, &client);
+   if (ret == -1) {
+     fprintf(stderr, "ioctl(dev_fd, DRM_IOCTL_GET_CLIENT, &client) failed: %s\n", strerror(errno));
+     close(dev_fd);
+@@ -309,26 +312,26 @@ intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
+     return 0;
+   }
+ 
+-  intel_driver_init(driver, dev_fd);
++  ret = intel_driver_init(driver, dev_fd);
+   driver->need_close = 1;
+ 
+-  return 1;
++  return ret;
+ }
+ 
+ LOCAL int
+ intel_driver_init_render(intel_driver_t *driver, const char* dev_name)
+ {
+-  int dev_fd;
++  int dev_fd, ret;
+ 
+   // usually dev_name = "/dev/dri/renderD%d"
+   dev_fd = open(dev_name, O_RDWR);
+   if (dev_fd == -1)
+     return 0;
+ 
+-  intel_driver_init(driver, dev_fd);
++  ret = intel_driver_init(driver, dev_fd);
+   driver->need_close = 1;
+ 
+-  return 1;
++  return ret;
+ }
+ 
+ LOCAL int 
diff --git a/debian/patches/series b/debian/patches/series
index e34ec29..ef67592 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,3 +9,4 @@ llvm-search-order.patch
 remove-unsafe-define-D__-USER-__.patch
 force-llvm-3.5.patch
 fixcrash-24b2ad.patch
+fixcrash-779213.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opencl/beignet.git



More information about the Pkg-opencl-commits mailing list