i965: Don't try to unmap NULL program cache BO.
When running shader-db with intel_stub and recent Mesa, context creation
fails when making a logical hardware context. In this case, we call
intelDestroyContext(), which gets here and tries to unmap the cache BO.
But there isn't one - we haven't made it yet. So we try to unmap a
NULL pointer, which used to be safe (it did nothing), but crashes
after commit 7c3b8ed878
.
The result is that we crash rather than failing context creation with
a nice message. Either way nothing works, but this is more polite.
Cc: "17.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
@@ -485,10 +485,13 @@ brw_destroy_cache(struct brw_context *brw, struct brw_cache *cache)
|
||||
|
||||
DBG("%s\n", __func__);
|
||||
|
||||
if (brw->has_llc)
|
||||
brw_bo_unmap(cache->bo);
|
||||
brw_bo_unreference(cache->bo);
|
||||
cache->bo = NULL;
|
||||
/* This can be NULL if context creation failed early on */
|
||||
if (cache->bo) {
|
||||
if (brw->has_llc)
|
||||
brw_bo_unmap(cache->bo);
|
||||
brw_bo_unreference(cache->bo);
|
||||
cache->bo = NULL;
|
||||
}
|
||||
brw_clear_cache(brw, cache);
|
||||
free(cache->items);
|
||||
cache->items = NULL;
|
||||
|
Reference in New Issue
Block a user