usb: phy: Find the right match in devm_usb_phy_match
authorAxel Lin <axel.lin@ingics.com>
Thu, 12 Mar 2015 01:15:28 +0000 (09:15 +0800)
committerSasha Levin <sasha.levin@oracle.com>
Sun, 17 May 2015 23:11:58 +0000 (19:11 -0400)
[ Upstream commit 869aee0f31429fa9d94d5aef539602b73ae0cf4b ]

The res parameter passed to devm_usb_phy_match() is the location where the
pointer to the usb_phy is stored, hence it needs to be dereferenced before
comparing to the match data in order to find the correct match.

Fixes: 410219dcd2ba ("usb: otg: utils: devres: Add API's to associate a device with the phy")
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Cc: <stable@vger.kernel.org> # v3.6+
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/usb/phy/phy.c

index 045cd30..7e8898d 100644 (file)
@@ -78,7 +78,9 @@ static void devm_usb_phy_release(struct device *dev, void *res)
 
 static int devm_usb_phy_match(struct device *dev, void *res, void *match_data)
 {
-       return res == match_data;
+       struct usb_phy **phy = res;
+
+       return *phy == match_data;
 }
 
 /**