]> git.baikalelectronics.ru Git - kernel.git/commit
interconnect: fix provider registration API
authorJohan Hovold <johan+linaro@kernel.org>
Mon, 6 Mar 2023 07:56:31 +0000 (08:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Mar 2023 12:33:57 +0000 (13:33 +0100)
commite5ca8b86860e74697b8274c05e35e6084b6ff5e0
tree31c6f0c707008030cc1c7c054cd9a87ecd217481
parent0f033fb78fc061ab98335f493bb851114b6da63c
interconnect: fix provider registration API

commit 2e51db0603ea3313752752be9253392b7e669c33 upstream.

The current interconnect provider interface is inherently racy as
providers are expected to be added before being fully initialised.

Specifically, nodes are currently not added and the provider data is not
initialised until after registering the provider which can cause racing
DT lookups to fail.

Add a new provider API which will be used to fix up the interconnect
drivers.

The old API is reimplemented using the new interface and will be removed
once all drivers have been fixed.

Fixes: 011f637d6b07 ("interconnect: Add generic on-chip interconnect API")
Fixes: 153736a0195c ("interconnect: Allow endpoints translation via DT")
Cc: stable@vger.kernel.org # 5.1
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com> # i.MX8MP MSC SM2-MB-EP1 Board
Link: https://lore.kernel.org/r/20230306075651.2449-4-johan+linaro@kernel.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/interconnect/core.c
include/linux/interconnect-provider.h