Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae6009c4 authored by Pankaj Gupta's avatar Pankaj Gupta
Browse files

msm: kgsl: Do not clear dispatcher fault when adreno reset fails



When adreno_reset fails, BUG_ON gets triggered to collect ram dump.
Do not clear dispatcher fault bits in such case to get correct fault
information from ram dump. Clear dispatcher fault when adreno_reset
returns success.

Change-Id: I6f54d48201d5e4ea5e3358b18d2f09ec7b285624
Signed-off-by: default avatarPankaj Gupta <gpankaj@codeaurora.org>
parent 757f1d14
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
 */

#include <linux/slab.h>
@@ -2260,12 +2260,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);