[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230309125421.3900962-6-lukma@denx.de>
Date: Thu, 9 Mar 2023 13:54:19 +0100
From: Lukasz Majewski <lukma@...x.de>
To: Andrew Lunn <andrew@...n.ch>, Vladimir Oltean <olteanv@...il.com>,
Russell King <linux@...linux.org.uk>
Cc: Eric Dumazet <edumazet@...gle.com>,
Florian Fainelli <f.fainelli@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Alexander Duyck <alexander.duyck@...il.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
Lukasz Majewski <lukma@...x.de>
Subject: [PATCH 5/7] dsa: marvell: Add helper function to validate the max_frame_size variable
This commit shall be regarded as a transition one, as this function helps
to validate the correctness of max_frame_size variable added to
mv88e6xxx_info structure.
It is necessary to avoid regressions as manual assessment of this value
turned out to be error prone.
Signed-off-by: Lukasz Majewski <lukma@...x.de>
Suggested-by: Russell King (Oracle) <linux@...linux.org.uk>
---
Changes for v5:
- New patch
---
drivers/net/dsa/mv88e6xxx/chip.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 9695a1af45a9..af14eb8a1bfd 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -7169,6 +7169,27 @@ static int __maybe_unused mv88e6xxx_resume(struct device *dev)
static SIMPLE_DEV_PM_OPS(mv88e6xxx_pm_ops, mv88e6xxx_suspend, mv88e6xxx_resume);
+static void mv88e6xxx_validate_frame_size(void)
+{
+ int max;
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(mv88e6xxx_table); i++) {
+ /* same logic as in mv88e6xxx_get_max_mtu() */
+ if (mv88e6xxx_table[i].ops->port_set_jumbo_size)
+ max = 10240;
+ else if (mv88e6xxx_table[i].ops->set_max_frame_size)
+ max = 1632;
+ else
+ max = 1522;
+
+ if (mv88e6xxx_table[i].max_frame_size != max)
+ pr_err("BUG: %s has differing max_frame_size: %d != %d\n",
+ mv88e6xxx_table[i].name, max,
+ mv88e6xxx_table[i].max_frame_size);
+ }
+}
+
static int mv88e6xxx_probe(struct mdio_device *mdiodev)
{
struct dsa_mv88e6xxx_pdata *pdata = mdiodev->dev.platform_data;
@@ -7302,6 +7323,7 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
if (err)
goto out_mdio;
+ mv88e6xxx_validate_frame_size();
return 0;
out_mdio:
--
2.20.1
Powered by blists - more mailing lists