diff --git a/drivers/gpu/msm/adreno_dispatch.c b/drivers/gpu/msm/adreno_dispatch.c index e42fc4a6bb03..9e2ec67844ae 100644 --- a/drivers/gpu/msm/adreno_dispatch.c +++ b/drivers/gpu/msm/adreno_dispatch.c @@ -2251,12 +2251,13 @@ static int dispatcher_do_fault(struct adreno_device *adreno_dev) ret = adreno_reset(device, fault); mutex_unlock(&device->mutex); - /* if any other fault got in until reset then ignore */ - atomic_set(&dispatcher->fault, 0); /* If adreno_reset() fails then what hope do we have for the future? */ BUG_ON(ret); + /* if any other fault got in until reset then ignore */ + atomic_set(&dispatcher->fault, 0); + /* recover all the dispatch_q's starting with the one that hung */ if (dispatch_q) recover_dispatch_q(device, dispatch_q, fault, base);