[Nouveau] [mesa PATCH] nouveau: handle early initialization errors

Francisco Jerez currojerez at riseup.net
Wed Aug 25 15:36:29 PDT 2010


Marcin Slusarz <marcin.slusarz at gmail.com> writes:

> handle very early errors in pipe_screen creation (failure of
> nouveau_screen_init in nv50_screen_create)
> ---
>  src/gallium/drivers/nouveau/nouveau_screen.c       |    3 ++-
>  .../winsys/nouveau/drm/nouveau_drm_winsys.c        |    3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c
> index 513e5e0..ebb21a6 100644
> --- a/src/gallium/drivers/nouveau/nouveau_screen.c
> +++ b/src/gallium/drivers/nouveau/nouveau_screen.c
> @@ -258,6 +258,7 @@ nouveau_screen_fini(struct nouveau_screen *screen)
>  {
>  	struct pipe_winsys *ws = screen->base.winsys;
>  	nouveau_channel_free(&screen->channel);
> -	ws->destroy(ws);
> +	if (ws)
> +		ws->destroy(ws);
>  }
>  
> diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
> index 660dbd0..d4bf124 100644
> --- a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
> +++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
> @@ -19,7 +19,8 @@ nouveau_drm_destroy_winsys(struct pipe_winsys *s)
>  {
>  	struct nouveau_winsys *nv_winsys = nouveau_winsys(s);
>  	struct nouveau_screen *nv_screen= nouveau_screen(nv_winsys->pscreen);
> -	nouveau_device_close(&nv_screen->device);
> +	if (nv_screen)
> +		nouveau_device_close(&nv_screen->device);
>  	FREE(nv_winsys);
>  }

Thanks, pushed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20100826/93f69607/attachment.pgp>


More information about the Nouveau mailing list