From: "Kweh, Hock Leong" <redacted>
There is no checking valid value of maxmtu when getting it from devicetree.
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 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 39eb7a6..683d59f 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3319,7 +3319,8 @@ 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;
if (flow_ctrl)
--
1.7.9.5
On Thu, Jan 5, 2017 at 12:47 PM, Kweh, Hock Leong
[off-list ref] wrote:
From: "Kweh, Hock Leong" <redacted>
There is no checking valid value of maxmtu when getting it from devicetree.
'Device Tree' or 'device tree' ?
This resolution added the checking condition to ensure the assignment is
made within a valid range.
quoted hunk
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 39eb7a6..683d59f 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3319,7 +3319,8 @@ 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;
Perhaps add a warning message on else branch?
--
With Best Regards,
Andy Shevchenko
-----Original Message-----
From: Andy Shevchenko [mailto:andy.shevchenko@gmail.com]
Sent: Friday, January 06, 2017 5:07 AM
To: Kweh, Hock Leong <redacted>
Cc: 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]; Alexandre
TORGUE [off-list ref]; Joachim Eastwood
[off-list ref]; Niklas Cassel [off-list ref]; Johan Hovold
[off-list ref]; Pavel Machek [off-list ref]; lars.persson@axis.com;
netdev [off-list ref]; LKML [off-list ref]
Subject: Re: [PATCH] net: stmmac: fix maxmtu assignment to be within valid
range
On Thu, Jan 5, 2017 at 12:47 PM, Kweh, Hock Leong
[off-list ref] wrote:
quoted
From: "Kweh, Hock Leong" <redacted>
There is no checking valid value of maxmtu when getting it from devicetree.
'Device Tree' or 'device tree' ?
Noted & Thanks. Submitting V2.
quoted
This resolution added the checking condition to ensure the assignment
is made within a valid range.
quoted
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 39eb7a6..683d59f 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3319,7 +3319,8 @@ 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;
Perhaps add a warning message on else branch?
Noted & Thanks. Submitting V2.
--
With Best Regards,
Andy Shevchenko