[PATCH v2] net: stmmac: fix maxmtu assignment to be within valid range

Subsystems: networking drivers, stmmac ethernet driver, the rest

STALE3536d

2 messages, 1 author, 2017-01-06 · open the first message on its own page

[PATCH v2] net: stmmac: fix maxmtu assignment to be within valid range

From: Kweh, Hock Leong <hidden>
Date: 2017-01-06 02:03:45

From: "Kweh, Hock Leong" <redacted>

There is no checking valid value of maxmtu when getting it from device tree.
This resolution added the checking condition to ensure the assignment is
made within a valid range.

Signed-off-by: Kweh, Hock Leong <redacted>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 92ac006..4df555e 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3345,8 +3345,14 @@ int stmmac_dvr_probe(struct device *device,
 		ndev->max_mtu = JUMBO_LEN;
 	else
 		ndev->max_mtu = SKB_MAX_HEAD(NET_SKB_PAD + NET_IP_ALIGN);
-	if (priv->plat->maxmtu < ndev->max_mtu)
+
+	if ((priv->plat->maxmtu < ndev->max_mtu) &&
+	    (priv->plat->maxmtu >= ndev->min_mtu))
 		ndev->max_mtu = priv->plat->maxmtu;
+	else if (priv->plat->maxmtu != 0)
+		netdev_warn(priv->dev,
+			    "%s: warning: maxmtu having invalid value (%d)\n",
+			    __func__, priv->plat->maxmtu);
 
 	if (flow_ctrl)
 		priv->flow_ctrl = FLOW_AUTO;	/* RX/TX pause on */
-- 
1.7.9.5

RE: [PATCH v2] net: stmmac: fix maxmtu assignment to be within valid range

From: Kweh, Hock Leong <hidden>
Date: 2017-01-06 15:55:26

-----Original Message-----
From: Kweh, Hock Leong
Sent: Friday, January 06, 2017 6:08 PM
To: David S. Miller <davem@davemloft.net>; Joao Pinto
[off-list ref]; Giuseppe CAVALLARO [off-list ref];
seraphin.bonnaffe@st.com; Jarod Wilson [off-list ref]; Andy
Shevchenko [off-list ref]
Cc: Alexandre TORGUE <redacted>; Joachim Eastwood
[off-list ref]; Niklas Cassel [off-list ref]; Johan Hovold
[off-list ref]; pavel@ucw.cz; Kweh, Hock Leong
[off-list ref]; lars.persson@axis.com; netdev
[off-list ref]; LKML [off-list ref]
Subject: [PATCH v2] net: stmmac: fix maxmtu assignment to be within valid
range

From: "Kweh, Hock Leong" <redacted>

There is no checking valid value of maxmtu when getting it from device tree.
This resolution added the checking condition to ensure the assignment is made
within a valid range.

Signed-off-by: Kweh, Hock Leong <redacted>
I am going to submit V3.
quoted hunk
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 92ac006..4df555e 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3345,8 +3345,14 @@ int stmmac_dvr_probe(struct device *device,
 		ndev->max_mtu = JUMBO_LEN;
 	else
 		ndev->max_mtu = SKB_MAX_HEAD(NET_SKB_PAD +
NET_IP_ALIGN);
-	if (priv->plat->maxmtu < ndev->max_mtu)
+
+	if ((priv->plat->maxmtu < ndev->max_mtu) &&
+	    (priv->plat->maxmtu >= ndev->min_mtu))
 		ndev->max_mtu = priv->plat->maxmtu;
+	else if (priv->plat->maxmtu != 0)
+		netdev_warn(priv->dev,
+			    "%s: warning: maxmtu having invalid value (%d)\n",
+			    __func__, priv->plat->maxmtu);

 	if (flow_ctrl)
 		priv->flow_ctrl = FLOW_AUTO;	/* RX/TX pause on */
--
1.7.9.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help