phy: zynqmp: Take the phy mutex in xlate

[ Upstream commit d79c684091 ]

Take the phy mutex in xlate to protect against concurrent
modification/access to gtr_phy. This does not typically cause any
issues, since in most systems the phys are only xlated once and
thereafter accessed with the phy API (which takes the locks). However,
we are about to allow userspace to access phys for debugging, so it's
important to avoid any data races.

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Link: https://lore.kernel.org/r/20240628205540.3098010-5-sean.anderson@linux.dev
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Sean Anderson 2024-06-28 16:55:39 -04:00 committed by Greg Kroah-Hartman
parent 441e6f5829
commit 8bdbc44c6d

View File

@ -846,6 +846,7 @@ static struct phy *xpsgtr_xlate(struct device *dev,
phy_type = args->args[1]; phy_type = args->args[1];
phy_instance = args->args[2]; phy_instance = args->args[2];
guard(mutex)(&gtr_phy->phy->mutex);
ret = xpsgtr_set_lane_type(gtr_phy, phy_type, phy_instance); ret = xpsgtr_set_lane_type(gtr_phy, phy_type, phy_instance);
if (ret < 0) { if (ret < 0) {
dev_err(gtr_dev->dev, "Invalid PHY type and/or instance\n"); dev_err(gtr_dev->dev, "Invalid PHY type and/or instance\n");