[Mesa-dev] [PATCH] i965: Don't call abort() on an unknown device.

Ian Romanick idr at freedesktop.org
Mon Feb 10 09:50:40 PST 2014


On 02/10/2014 01:54 AM, Kenneth Graunke wrote:
> If we don't recognize the PCI ID, we can't reasonably load the driver.
> However, calling abort() is quite rude - it means the application that
> tried to initialize us (possibly the X server) can't continue via
> fallback paths.  We already have a more polite mechanism - failing to
> create the context.  So, just use that.
> 
> While we're at it, improve the error message.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73024
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

Come on!  "Hulk SMASH!" is a fine error path. :)

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> ---
>  src/mesa/drivers/dri/i965/brw_device_info.c | 4 ++--
>  src/mesa/drivers/dri/i965/intel_screen.c    | 2 ++
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c
> index eb1df79..d931091 100644
> --- a/src/mesa/drivers/dri/i965/brw_device_info.c
> +++ b/src/mesa/drivers/dri/i965/brw_device_info.c
> @@ -229,7 +229,7 @@ brw_get_device_info(int devid)
>  #define CHIPSET(id, family, name) case id: return &brw_device_info_##family;
>  #include "pci_ids/i965_pci_ids.h"
>     default:
> -      fprintf(stderr, "Unknown Intel device.");
> -      abort();
> +      fprintf(stderr, "i965_dri.so does not support the 0x%x PCI ID.\n", devid);
> +      return NULL;
>     }
>  }
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
> index 6ab3609..acdb5f3 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -1328,6 +1328,8 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
>  
>     intelScreen->deviceID = drm_intel_bufmgr_gem_get_devid(intelScreen->bufmgr);
>     intelScreen->devinfo = brw_get_device_info(intelScreen->deviceID);
> +   if (!intelScreen->devinfo)
> +      return false;
>  
>     intelScreen->hw_must_use_separate_stencil = intelScreen->devinfo->gen >= 7;
>  
> 



More information about the mesa-dev mailing list