summaryrefslogtreecommitdiff
path: root/drivers/phy/phy-core.c
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2015-02-25 15:16:29 (GMT)
committerKishon Vijay Abraham I <kishon@ti.com>2015-03-13 11:43:52 (GMT)
commit2f1bce487cd0a02623cff3d877940f9a2026341c (patch)
treea3445981f7d85e35042ddceb80df44dd5f1b0e19 /drivers/phy/phy-core.c
parent6b08e36ba32b3cb4d44af617c8984f9c2bfdf964 (diff)
downloadlinux-2f1bce487cd0a02623cff3d877940f9a2026341c.tar.xz
phy: Find the right match in devm_phy_destroy()
devm_phy_create() stores the pointer to the new PHY at the address returned by devres_alloc(). The res parameter passed to devm_phy_match() is therefore the location where the pointer to the PHY is stored, hence it needs to be dereferenced before comparing to the match data in order to find the correct match. Cc: <stable@vger.kernel.org> # v3.13+ Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'drivers/phy/phy-core.c')
-rw-r--r--drivers/phy/phy-core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index a12d353..04fc84f 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -52,7 +52,9 @@ static void devm_phy_consume(struct device *dev, void *res)
static int devm_phy_match(struct device *dev, void *res, void *match_data)
{
- return res == match_data;
+ struct phy **phy = res;
+
+ return *phy == match_data;
}
/**