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

Commit 6ca25f85 authored by Maulik Shah's avatar Maulik Shah Committed by Tushar Nimkar
Browse files

drivers: rpmh: Always bug_on() upon timeout in rpmh_write_batch()



rpmh_rsc_debug() can race with tcs_tx_done() interrupt handler and
may not see any tcs busy and hence won't do bug_on(). Later it may
go ahead and free() the request which interrupt handler is processing.

Lets always bug_on() upon timeout.

Change-Id: I238a6a3639077850df158cb1f0190656e014bb57
Signed-off-by: default avatarMaulik Shah <mkshah@codeaurora.org>
parent abe592ad
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/atomic.h>
@@ -478,12 +478,10 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
			 * we've returned from this function.
			 */
			rpmh_rsc_debug(ctrlr_to_drv(ctrlr), &compls[i]);
			ret = -ETIMEDOUT;
			goto exit;
			BUG_ON(1);
		}
	}

exit:
	kfree(ptr);

	return ret;