Commit 59bbaa45 authored by Thierry Reding's avatar Thierry Reding Committed by Sasha Levin

phy: Find the right match in devm_phy_destroy()

[ Upstream commit 2f1bce48 ]

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: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent bf8935d8
......@@ -51,7 +51,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;
}
static struct phy *phy_lookup(struct device *device, const char *port)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment