diff mbox series

[net,v3] net: macb: remove change_mtu callback

Message ID 20240311154315.2575297-1-thomas.perrot@bootlin.com (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series [net,v3] net: macb: remove change_mtu callback | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 977 this patch: 977
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers fail 1 blamed authors not CCed: jarod@redhat.com; 1 maintainers not CCed: jarod@redhat.com
netdev/build_clang success Errors and warnings before: 972 this patch: 972
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 994 this patch: 994
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 23 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest warning net-next-2024-03-11--21-00 (tests: 883)

Commit Message

Thomas Perrot March 11, 2024, 3:43 p.m. UTC
From: Thomas Perrot <thomas.perrot@bootlin.com>

Because it doesn't allow MTU changes when the interface is up, although
it is not necessary.

This callback has been added to add in a first implementation of the Jumbo
support [1],since it has been reworked and moved to the probe [2].

With this patch the core will set the MTU, regardless of if the interface
is up or not.

[1] commit a5898ea09aad ("net: macb: Add change_mtu callback with
    jumbo support")
[2] commit 44770e1180de ("ethernet: use core min/max MTU checking")

Fixes: 44770e1180de ("ethernet: use core min/max MTU checking")
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
---

Changes since v3:
 - Update prefix
 - Rebase on net
 - Add tag Fixes

Changes since v2:
 - Update the commit message.

 drivers/net/ethernet/cadence/macb_main.c | 11 -----------
 1 file changed, 11 deletions(-)

--
2.44.0

Comments

Jakub Kicinski March 11, 2024, 11:17 p.m. UTC | #1
On Mon, 11 Mar 2024 16:43:15 +0100 thomas.perrot@bootlin.com wrote:
> Because it doesn't allow MTU changes when the interface is up, although
> it is not necessary.
> 
> This callback has been added to add in a first implementation of the Jumbo
> support [1],since it has been reworked and moved to the probe [2].
> 
> With this patch the core will set the MTU, regardless of if the interface
> is up or not.
> 
> [1] commit a5898ea09aad ("net: macb: Add change_mtu callback with
>     jumbo support")
> [2] commit 44770e1180de ("ethernet: use core min/max MTU checking")
> 
> Fixes: 44770e1180de ("ethernet: use core min/max MTU checking")

static void macb_init_rx_buffer_size(struct macb *bp, size_t size)
{
	if (!macb_is_gem(bp)) {
		bp->rx_buffer_size = MACB_RX_BUFFER_SIZE;
	} else {
		bp->rx_buffer_size = size;

where size is:

	size_t bufsz = dev->mtu + ETH_HLEN + ETH_FCS_LEN + NET_IP_ALIGN;

I guess you tested this on a platform where !macb_is_gem(bp) ?
Otherwise the buffer size seems to be based on MTU and the proposed
change won't be correct.
Thomas Perrot March 13, 2024, 1:39 p.m. UTC | #2
Hello,

On Mon, 2024-03-11 at 16:17 -0700, Jakub Kicinski wrote:
> On Mon, 11 Mar 2024 16:43:15 +0100 thomas.perrot@bootlin.com wrote:
> > Because it doesn't allow MTU changes when the interface is up,
> > although
> > it is not necessary.
> > 
> > This callback has been added to add in a first implementation of
> > the Jumbo
> > support [1],since it has been reworked and moved to the probe [2].
> > 
> > With this patch the core will set the MTU, regardless of if the
> > interface
> > is up or not.
> > 
> > [1] commit a5898ea09aad ("net: macb: Add change_mtu callback with
> >     jumbo support")
> > [2] commit 44770e1180de ("ethernet: use core min/max MTU checking")
> > 
> > Fixes: 44770e1180de ("ethernet: use core min/max MTU checking")
> 
> static void macb_init_rx_buffer_size(struct macb *bp, size_t size)
> {
> 	if (!macb_is_gem(bp)) {
> 		bp->rx_buffer_size = MACB_RX_BUFFER_SIZE;
> 	} else {
> 		bp->rx_buffer_size = size;
> 
> where size is:
> 
> 	size_t bufsz = dev->mtu + ETH_HLEN + ETH_FCS_LEN +
> NET_IP_ALIGN;
> 
> I guess you tested this on a platform where !macb_is_gem(bp) ?

Thank you for your review, indeed that won’t be correct on GEM in when
the MTU used to initialize the RX buffer is lower than the new MTU.

So, I will suggest another patch with an acceptable solution.

Kind regards,
Thomas Perrot

> Otherwise the buffer size seems to be based on MTU and the proposed
> change won't be correct.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 898debfd4db3..0532215e5236 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -3017,16 +3017,6 @@  static int macb_close(struct net_device *dev)
 	return 0;
 }

-static int macb_change_mtu(struct net_device *dev, int new_mtu)
-{
-	if (netif_running(dev))
-		return -EBUSY;
-
-	dev->mtu = new_mtu;
-
-	return 0;
-}
-
 static int macb_set_mac_addr(struct net_device *dev, void *addr)
 {
 	int err;
@@ -3897,7 +3887,6 @@  static const struct net_device_ops macb_netdev_ops = {
 	.ndo_get_stats		= macb_get_stats,
 	.ndo_eth_ioctl		= macb_ioctl,
 	.ndo_validate_addr	= eth_validate_addr,
-	.ndo_change_mtu		= macb_change_mtu,
 	.ndo_set_mac_address	= macb_set_mac_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	.ndo_poll_controller	= macb_poll_controller,