From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79E87C2D0E8 for ; Fri, 27 Mar 2020 10:00:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 49FF7206F8 for ; Fri, 27 Mar 2020 10:00:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dfTcnMRK" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726937AbgC0KAO (ORCPT ); Fri, 27 Mar 2020 06:00:14 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:44104 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726284AbgC0KAO (ORCPT ); Fri, 27 Mar 2020 06:00:14 -0400 Received: by mail-ed1-f67.google.com with SMTP id i16so9378338edy.11 for ; Fri, 27 Mar 2020 03:00:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jAel3J0RK+nVzQL5+BbyTkLxt0qa1UNMPLWPhOjb0g8=; b=dfTcnMRKiSOaAT7LBCcrT5STnuVaMP3KyEw9ETXPq8x9Y6JQLArR3Bq7llqzgTRQB6 2SH5LCproaUZMkIwCbrDGPp4OXtmm8QpriywCcBn2B2H/ZNt/yP8Mq4yJJyfAVAaDSyZ yi43hiNEvjllvjNtIY4Ug4Sf6ApeM8XlFX9H2Pqk5XhmyoHo3rxvHmRMhozqff9xMLXB GOtpSckmSu+kNWET1wY72VYGSQtuN9QgBwku0GZs2EovEJ/Ts8dwY1cBvqF7fJG9NMPg 8/i3CiTK7UGQca1E4fgUhGvVGtnSCC13JL1b3xbdwJuicEv3PmN6j4vMMD9Ie6sMFaky XSIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jAel3J0RK+nVzQL5+BbyTkLxt0qa1UNMPLWPhOjb0g8=; b=M07Q+upmKMHPcR4IDsn1pvNMInN6ajAYjoJY1IXwLdSHV8eBCNJIVMVD13yW6he+ro ExNVH+s8oK6vUzRqt5vwdf5dcANVN7MOFRXMKO9niG2jveZ1Z3VjgveVZFspIF+lAMnW FTGfDG0AVMSgd23CENveT1Tulpyh4/KGiDk2uldXUiC6eFXPKt61uyc4JeXWDKLYR6vZ EWWmszWAOR6fTg/HRZQFN1l7W822Ec9Lim8GaPDdJ1GhY3b6QocPaD+ivB5d9fp79Bbm dH7MQKHGeekjUM7wIA3F8jUSr8EV2e+8HD9TNDRIKNEzwSq9+lJR/z+hWe5w9Lx7cFuR AKGQ== X-Gm-Message-State: ANhLgQ0p8gK05403mKuYrKUoQNqwckrBXvWFqF8YY5yYzWFjQLLiqu1R VT9WFgepi1DiLKDthkhv84bp4hFLvu7q+xtf5c8= X-Google-Smtp-Source: ADFU+vtYuesJvbwyZLwTyPYLoXz7ahw8sTSScBsmugeLRA4QX2O4MyUsGDIdkFMLtyQ5Mt86CbBHIawAha/+4O4/EqQ= X-Received: by 2002:aa7:d602:: with SMTP id c2mr12757106edr.118.1585303212097; Fri, 27 Mar 2020 03:00:12 -0700 (PDT) MIME-Version: 1.0 References: <20200326224040.32014-1-olteanv@gmail.com> <20200326224040.32014-4-olteanv@gmail.com> <20200327000625.GJ3819@lunn.ch> In-Reply-To: <20200327000625.GJ3819@lunn.ch> From: Vladimir Oltean Date: Fri, 27 Mar 2020 12:00:01 +0200 Message-ID: Subject: Re: [PATCH v3 net-next 3/8] net: dsa: configure the MTU for switch ports To: Andrew Lunn Cc: Florian Fainelli , Vivien Didelot , "David S. Miller" , Jakub Kicinski , murali.policharla@broadcom.com, Stephen Hemminger , Jiri Pirko , Ido Schimmel , Jakub Kicinski , Nikolay Aleksandrov , netdev Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri, 27 Mar 2020 at 02:06, Andrew Lunn wrote: > > > -static void dsa_master_set_mtu(struct net_device *dev, struct dsa_port *cpu_dp) > > -{ > > - unsigned int mtu = ETH_DATA_LEN + cpu_dp->tag_ops->overhead; > > - int err; > > - > > - rtnl_lock(); > > - if (mtu <= dev->max_mtu) { > > - err = dev_set_mtu(dev, mtu); > > - if (err) > > - netdev_dbg(dev, "Unable to set MTU to include for DSA overheads\n"); > > - } > > - rtnl_unlock(); > > -} > > - > > static void dsa_master_reset_mtu(struct net_device *dev) > > { > > int err; > > @@ -344,7 +330,14 @@ int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp) > > { > > int ret; > > > > - dsa_master_set_mtu(dev, cpu_dp); > > + rtnl_lock(); > > + ret = dev_set_mtu(dev, ETH_DATA_LEN + cpu_dp->tag_ops->overhead); > > + rtnl_unlock(); > > + if (ret) { > > + netdev_err(dev, "error %d setting MTU to include DSA overhead\n", > > + ret); > > + return ret; > > + } > > I suspect this will break devices. dsa_master_set_mtu() was not fatal > if it failed. I did this deliberately because i suspect there are some > MAC drivers which are unhappy to have the MTU changed, but will still > send and receive frames which are bigger than the MTU. > > So please keep setting the MTU of ETH_DATA_LEN + > cpu_dp->tag_ops->overhead or less as non-fatal. Jumbo frame sizes you > should however check the return code. > Ok, I'll leave it non-fatal here. > > @@ -1465,7 +1556,10 @@ int dsa_slave_create(struct dsa_port *port) > > slave_dev->priv_flags |= IFF_NO_QUEUE; > > slave_dev->netdev_ops = &dsa_slave_netdev_ops; > > slave_dev->min_mtu = 0; > > - slave_dev->max_mtu = ETH_MAX_MTU; > > + if (ds->ops->port_max_mtu) > > + slave_dev->max_mtu = ds->ops->port_max_mtu(ds, port->index); > > + else > > + slave_dev->max_mtu = ETH_MAX_MTU; > > Does this bring you anything. You have a lot more checks you perform > when performing the actual change. Seems better to keep them all > together. > This here is for cooperating with dev_validate_mtu() so I can get this nice message: ip link set dev sw0p1 mtu 2400 Error: mtu greater than device maximum. > Andrew Thanks, -Vladimir