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: Maulik Shah <mkshah@codeaurora.org>
This commit is contained in:
Maulik Shah 2021-07-04 12:51:45 +05:30 committed by Tushar Nimkar
parent abe592ad24
commit 6ca25f858d

View File

@ -1,6 +1,6 @@
// 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;