aboutsummaryrefslogtreecommitdiff
path: root/drivers/phy
diff options
context:
space:
mode:
authorVignesh Raghavendra2020-05-20 22:35:41 +0530
committerTom Rini2020-05-25 11:54:53 -0400
commit64b69f8c89352975c25730bcca4bf8af2296297f (patch)
treee71eef532b4a2786c13d2533581bedc3afc5ecf0 /drivers/phy
parentf4c1f705aa6e686bdb68b7092583be17a7bccebf (diff)
phy: Fix possible NULL pointer deference
It is possible that users of generic_phy_*() APIs may pass a valid struct phy pointer but phy->dev can be NULL, leading to NULL pointer deference in phy_dev_ops(). So call generic_phy_valid() to verify that phy and phy->dev are both valid. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'drivers/phy')
-rw-r--r--drivers/phy/phy-uclass.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c
index 65b53168348..db7f39cd0b4 100644
--- a/drivers/phy/phy-uclass.c
+++ b/drivers/phy/phy-uclass.c
@@ -118,7 +118,7 @@ int generic_phy_init(struct phy *phy)
{
struct phy_ops const *ops;
- if (!phy)
+ if (!generic_phy_valid(phy))
return 0;
ops = phy_dev_ops(phy->dev);
@@ -129,7 +129,7 @@ int generic_phy_reset(struct phy *phy)
{
struct phy_ops const *ops;
- if (!phy)
+ if (!generic_phy_valid(phy))
return 0;
ops = phy_dev_ops(phy->dev);
@@ -140,7 +140,7 @@ int generic_phy_exit(struct phy *phy)
{
struct phy_ops const *ops;
- if (!phy)
+ if (!generic_phy_valid(phy))
return 0;
ops = phy_dev_ops(phy->dev);
@@ -151,7 +151,7 @@ int generic_phy_power_on(struct phy *phy)
{
struct phy_ops const *ops;
- if (!phy)
+ if (!generic_phy_valid(phy))
return 0;
ops = phy_dev_ops(phy->dev);
@@ -162,7 +162,7 @@ int generic_phy_power_off(struct phy *phy)
{
struct phy_ops const *ops;
- if (!phy)
+ if (!generic_phy_valid(phy))
return 0;
ops = phy_dev_ops(phy->dev);