[Beignet] [PATCH] Fail, don't assert, if unable to create context

Yang, Rong R rong.r.yang at intel.com
Mon Jan 9 07:49:25 UTC 2017


LGTM, pushed, thanks.

> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Rebecca N. Palmer
> Sent: Monday, January 9, 2017 5:33
> To: beignet at lists.freedesktop.org
> Subject: [Beignet] [PATCH] Fail, don't assert, if unable to create context
> 
> As the "do we have any usable devices?" check uses this, it needs to not
> crash even when we don't.
> 
> Signed-off-by: Rebecca N. Palmer <rebecca_palmer at zoho.com>
> ---
> The user who reported a crash here ( https://bugs.debian.org/848792 ) was
> using unsupported hardware, but I don't know whether this is the reason
> they can't create a context.
> 
> diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c index
> a8d554c..b8a1b52 100644
> --- a/src/intel/intel_driver.c
> +++ b/src/intel/intel_driver.c
> @@ -134,11 +134,12 @@ intel_driver_aub_dump(driver);  return 1;  }
> 
> -static void
> +static int
>  intel_driver_context_init(intel_driver_t *driver)  {  driver->ctx =
> drm_intel_gem_context_create(driver->bufmgr);
> -assert(driver->ctx);
> +if (!driver->ctx)
> +  return 0;
>  driver->null_bo = NULL;
>  #ifdef HAS_BO_SET_SOFTPIN
>  drm_intel_bo *bo = dri_bo_alloc(driver->bufmgr, "null_bo", 64*1024, 4096);
> @@ -148,6 +149,7 @@ drm_intel_bo_set_softpin_offset(bo, 0);
> drm_intel_bo_disable_reuse(bo);  driver->null_bo = bo;  #endif
> +return 1;
>  }
> 
>  static void
> @@ -168,7 +170,7 @@ driver->locked = 0;
>  pthread_mutex_init(&driver->ctxmutex, NULL);
> 
>  if (!intel_driver_memman_init(driver)) return 0; -
> intel_driver_context_init(driver);
> +if (!intel_driver_context_init(driver)) return 0;
> 
>  #if EMULATE_GEN
>  driver->gen_ver = EMULATE_GEN;
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list