etnaviv: fix NULL pointer dereference in TS allocation
authorLucas Stach <l.stach@pengutronix.de>
Tue, 22 Nov 2022 09:21:43 +0000 (10:21 +0100)
committerMarge Bot <emma+marge@anholt.net>
Tue, 22 Nov 2022 18:30:41 +0000 (18:30 +0000)
Commit c2b06e1a3820 ("etnaviv: add support for sharing the TS buffer")
introduced a problem similar to the one fixed in 3b3cd5128672 ("etnaviv:
fix renderonly check in etna_resource_alloc") in a different code path.
This causes a NULL pointer dereference when the screen is instanciated
on the render node. Fix it in the same way by just checking for a valid
pointer.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19923>

src/gallium/drivers/etnaviv/etnaviv_resource.c

index 149387a..3f4e386 100644 (file)
@@ -154,7 +154,7 @@ etna_screen_resource_alloc_ts(struct pipe_screen *pscreen,
    DBG_F(ETNA_DBG_RESOURCE_MSGS, "%p: Allocating tile status of size %zu",
          rsc, ts_bo_size);
 
-   if ((rsc->base.bind & PIPE_BIND_SCANOUT) && screen->ro->kms_fd >= 0) {
+   if ((rsc->base.bind & PIPE_BIND_SCANOUT) && screen->ro) {
       struct pipe_resource scanout_templat;
       struct winsys_handle handle;