On Tuesday, 2017-09-26 07:48:37 +0000, Boris Brezillon wrote: > cleared_and_retried is always reset to false when jumping to the retry > label, thus leading to an infinite retry loop. > > Fix that by moving the cleared_and_retried variable definitions at the > beginning of the function.
Reviewed-by: Eric Engestrom <[email protected]> Fixes: 78087676c98aa8884ba92 "vc4: Restructure the simulator mode." Cc: Eric Anholt <[email protected]> > While we're at it, move the create variable with the other local > variables and explicitly reset its content in the retry path. That was actually changed the other way around by the commit which introduced the bug (78087676c98aa8884ba92); you should probably wait for Eric Anholt's reply (cc'ed) on this before reverting that. (you might want to split the two changes into two patches) > > Signed-off-by: Boris Brezillon <[email protected]> > --- > src/gallium/drivers/vc4/vc4_bufmgr.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/src/gallium/drivers/vc4/vc4_bufmgr.c > b/src/gallium/drivers/vc4/vc4_bufmgr.c > index 12af7f8a9ef2..0653f8823232 100644 > --- a/src/gallium/drivers/vc4/vc4_bufmgr.c > +++ b/src/gallium/drivers/vc4/vc4_bufmgr.c > @@ -123,6 +123,8 @@ vc4_bo_from_cache(struct vc4_screen *screen, uint32_t > size, const char *name) > struct vc4_bo * > vc4_bo_alloc(struct vc4_screen *screen, uint32_t size, const char *name) > { > + bool cleared_and_retried = false; > + struct drm_vc4_create_bo create; > struct vc4_bo *bo; > int ret; > > @@ -149,12 +151,8 @@ vc4_bo_alloc(struct vc4_screen *screen, uint32_t size, > const char *name) > bo->private = true; > > retry: > - ; > - > - bool cleared_and_retried = false; > - struct drm_vc4_create_bo create = { > - .size = size > - }; > + memset(&create, 0, sizeof(create)); > + create.size = size; > > ret = vc4_ioctl(screen->fd, DRM_IOCTL_VC4_CREATE_BO, &create); > bo->handle = create.handle; > -- > 2.11.0 > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
