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

Commit a8dfe193 authored by Georgi Djakov's avatar Georgi Djakov
Browse files

interconnect: Add locking in icc_set_tag()

We must ensure that the tag is not changed while we aggregate the
requests. Currently the icc_set_tag() is not using any locks and this
may cause the values to be aggregated incorrectly. Fix this by acquiring
the icc_lock while we set the tag.

Link: https://lore.kernel.org/lkml/20191018141750.17032-1-georgi.djakov@linaro.org/


Fixes: 127ab2cc ("interconnect: Add support for path tags")
Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarGeorgi Djakov <georgi.djakov@linaro.org>
parent 83c774f0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -405,8 +405,12 @@ void icc_set_tag(struct icc_path *path, u32 tag)
	if (!path)
		return;

	mutex_lock(&icc_lock);

	for (i = 0; i < path->num_nodes; i++)
		path->reqs[i].tag = tag;

	mutex_unlock(&icc_lock);
}
EXPORT_SYMBOL_GPL(icc_set_tag);