The goto jumped over the mtx_lock, but proceeded to hit the mtx_unlock.
We can simply set the bucket to NULL and it will skip the cache without
goto, and without messing up locking.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
if (flags & BO_ALLOC_ZEROED)
zeroed = true;
- if ((flags & BO_ALLOC_COHERENT) && !bufmgr->has_llc) {
- bo_size = MAX2(ALIGN(size, page_size), page_size);
- bucket = NULL;
- goto skip_cache;
- }
-
/* Round the allocated size up to a power of two number of pages. */
bucket = bucket_for_size(bufmgr, size);
+ if ((flags & BO_ALLOC_COHERENT) && !bufmgr->has_llc)
+ bucket = NULL;
+
/* If we don't have caching at this size, don't actually round the
* allocation up.
*/
bo->gtt_offset = 0ull;
}
} else {
-skip_cache:
bo = bo_calloc();
if (!bo)
goto err;