From: Johan Hovold <johan@kernel.org>
Date: Tue, 11 Nov 2014 19:00:12 +0000 (+0100)
Subject: net: phy: micrel: add led-mode sanity check
X-Git-Tag: v3.19-rc1~118^2~213^2~3
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=8620546c39a379e3b0cc5210519c0bc22377b914;p=users%2Fjedix%2Flinux-maple.git

net: phy: micrel: add led-mode sanity check

Make sure never to update more than two bits when setting the led mode,
something which could for example change the reference-clock setting.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 16135ac18bfe..1b3985cdc64c 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -173,6 +173,11 @@ static int kszphy_setup_led(struct phy_device *phydev,
 	if (of_property_read_u32(of_node, "micrel,led-mode", &val))
 		return 0;
 
+	if (val > 3) {
+		dev_err(&phydev->dev, "invalid led mode: 0x%02x\n", val);
+		return -EINVAL;
+	}
+
 	temp = phy_read(phydev, reg);
 	if (temp < 0)
 		return temp;