All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarod Wilson <jarod@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "VMware, Inc." <pv-drivers@vmware.com>,
	netdev@vger.kernel.org, Haiyang Zhang <haiyangz@microsoft.com>,
	linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	Shrikrishna Khare <skhare@vmware.com>
Subject: Re: [PATCH net-next 5/6] net: use core MTU range checking in virt drivers
Date: Wed, 19 Oct 2016 10:15:21 -0400	[thread overview]
Message-ID: <20161019141521.GB18569__22812.1985136115$1476890669$gmane$org@redhat.com> (raw)
In-Reply-To: <20161019165629-mutt-send-email-mst@kernel.org>

On Wed, Oct 19, 2016 at 04:59:46PM +0300, Michael S. Tsirkin wrote:
> On Tue, Oct 18, 2016 at 10:33:32PM -0400, Jarod Wilson wrote:
> > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> > index fad84f3..4885a42 100644
> > --- a/drivers/net/virtio_net.c
> > +++ b/drivers/net/virtio_net.c
> > @@ -1419,17 +1419,6 @@ static const struct ethtool_ops virtnet_ethtool_ops = {
> >  	.set_settings = virtnet_set_settings,
> >  };
> >  
> > -#define MIN_MTU 68
> > -#define MAX_MTU 65535
> > -
> > -static int virtnet_change_mtu(struct net_device *dev, int new_mtu)
> > -{
> > -	if (new_mtu < MIN_MTU || new_mtu > MAX_MTU)
> > -		return -EINVAL;
> > -	dev->mtu = new_mtu;
> > -	return 0;
> > -}
> > -
> >  static const struct net_device_ops virtnet_netdev = {
> >  	.ndo_open            = virtnet_open,
> >  	.ndo_stop   	     = virtnet_close,
> > @@ -1437,7 +1426,6 @@ static const struct net_device_ops virtnet_netdev = {
> >  	.ndo_validate_addr   = eth_validate_addr,
> >  	.ndo_set_mac_address = virtnet_set_mac_address,
> >  	.ndo_set_rx_mode     = virtnet_set_rx_mode,
> > -	.ndo_change_mtu	     = virtnet_change_mtu,
> >  	.ndo_get_stats64     = virtnet_stats,
> >  	.ndo_vlan_rx_add_vid = virtnet_vlan_rx_add_vid,
> >  	.ndo_vlan_rx_kill_vid = virtnet_vlan_rx_kill_vid,
> > @@ -1748,6 +1736,9 @@ static bool virtnet_validate_features(struct virtio_device *vdev)
> >  	return true;
> >  }
> >  
> > +#define MIN_MTU ETH_MIN_MTU
> > +#define MAX_MTU 65535
> > +
> 
> Do we need a common macro for this?

Probably. That value crops up in multiple drivers.

> >  static int virtnet_probe(struct virtio_device *vdev)
> >  {
> >  	int i, err;
> > @@ -1821,6 +1812,10 @@ static int virtnet_probe(struct virtio_device *vdev)
> >  
> >  	dev->vlan_features = dev->features;
> >  
> > +	/* MTU range: 68 - 65535 */
> > +	dev->min_mtu = MIN_MTU;
> > +	dev->max_mtu = MAX_MTU;
> > +
> >  	/* Configuration may specify what MAC to use.  Otherwise random. */
> >  	if (virtio_has_feature(vdev, VIRTIO_NET_F_MAC))
> >  		virtio_cread_bytes(vdev,
> > @@ -1875,8 +1870,10 @@ static int virtnet_probe(struct virtio_device *vdev)
> >  		mtu = virtio_cread16(vdev,
> >  				     offsetof(struct virtio_net_config,
> >  					      mtu));
> > -		if (virtnet_change_mtu(dev, mtu))
> > +		if (mtu >= dev->min_mtu && mtu <= dev->max_mtu) {
> > +			dev->mtu = mtu;
> >  			__virtio_clear_bit(vdev, VIRTIO_NET_F_MTU);
> 
> I think the logic is wrong here:
> 
> If mtu is legal, we set it but do not tell host.
> If it's out of range we tell host we use it
> but don't actually.
> 
> Should be the reverse.

Ah, yes, looks like it should be:

                if (mtu < dev->min_mtu || mtu > dev->max_mtu)
                        __virtio_clear_bit(vdev, VIRTIO_NET_F_MTU);
                else
                        dev->mtu = mtu;

-- 
Jarod Wilson
jarod@redhat.com

  parent reply	other threads:[~2016-10-19 14:15 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-19  2:33 [PATCH net-next 0/6] net: use core MTU range checking everywhere Jarod Wilson
2016-10-19  2:33 ` [PATCH net-next 1/6] net: use core MTU range checking in USB NIC drivers Jarod Wilson
2016-10-19  2:33 ` [PATCH net-next 2/6] net: use core MTU range checking in wireless drivers Jarod Wilson
2016-10-19  7:38   ` Johannes Berg
2016-10-19 14:27     ` Jarod Wilson
2016-10-19 14:28       ` Johannes Berg
2016-10-19  2:33 ` [PATCH net-next 3/6] net: use core MTU range checking in WAN drivers Jarod Wilson
2016-10-21 12:04   ` Krzysztof Hałasa
2016-10-19  2:33 ` [PATCH net-next 4/6] net: use core MTU range checking in core net infra Jarod Wilson
2016-10-19 12:17   ` Jiri Benc
2016-10-19 14:51     ` Jarod Wilson
2016-10-19 13:55   ` Sabrina Dubroca
2016-10-19 14:40     ` Jarod Wilson
2016-10-19 15:28       ` Sabrina Dubroca
2016-10-19 15:46         ` Jarod Wilson
2016-10-19  2:33 ` [PATCH net-next 5/6] net: use core MTU range checking in virt drivers Jarod Wilson
2016-10-19 13:06   ` Aaron Conole
2016-10-19 13:06   ` Aaron Conole
2016-10-19 13:59   ` Michael S. Tsirkin
2016-10-19 13:59     ` Michael S. Tsirkin
2016-10-19 14:03     ` Michael S. Tsirkin
2016-10-19 14:03       ` Michael S. Tsirkin
2016-10-19 14:17       ` Jarod Wilson
2016-10-19 14:17       ` Jarod Wilson
2016-10-19 14:15     ` Jarod Wilson
2016-10-19 14:15     ` Jarod Wilson [this message]
2016-10-19 14:07   ` Haiyang Zhang
2016-10-19 14:07     ` Haiyang Zhang via Virtualization
2016-10-19 14:23     ` Jarod Wilson
2016-10-19 14:23     ` Jarod Wilson
2016-10-19 14:23       ` Jarod Wilson
2016-10-19 22:21   ` Shrikrishna Khare
2016-10-19 22:21   ` Shrikrishna Khare
2016-10-19  2:33 ` Jarod Wilson
2016-10-19  2:33 ` [PATCH net-next 6/6] net: use core MTU range checking in misc drivers Jarod Wilson
2016-10-19 14:37   ` Robin Holt
2016-10-19 16:05   ` Sabrina Dubroca
2016-10-19 22:38     ` Stefan Richter
2016-10-20  3:16       ` Jarod Wilson
     [not found]         ` <20161020031641.GJ18569-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-10-22  9:36           ` Stefan Richter
2016-10-22  9:36             ` Stefan Richter
2016-10-22 18:51             ` Stefan Richter
2016-10-19 19:10 ` [PATCH net-next 0/6] net: use core MTU range checking everywhere David Miller
2016-10-19 19:29   ` Jarod Wilson
2016-10-20 17:55 ` [PATCH net-next v2 0/9] " Jarod Wilson
2016-10-20 17:55   ` [PATCH net-next v2 1/9] ethernet: use net core MTU range checking in more drivers Jarod Wilson
2016-10-20 17:55     ` Jarod Wilson
2016-10-20 17:55   ` [PATCH net-next v2 2/9] net: use core MTU range checking in USB NIC drivers Jarod Wilson
2016-10-20 17:55   ` [PATCH net-next v2 3/9] net: use core MTU range checking in wireless drivers Jarod Wilson
2016-10-20 18:22     ` Johannes Berg
2016-10-20 18:38       ` David Miller
2016-10-20 17:55   ` [PATCH net-next v2 4/9] net: use core MTU range checking in WAN drivers Jarod Wilson
2016-10-20 17:55   ` [PATCH net-next v2 5/9] net: use core MTU range checking in core net infra Jarod Wilson
2016-10-20 17:55   ` [PATCH net-next v2 6/9] net: use core MTU range checking in virt drivers Jarod Wilson
2016-10-20 17:55     ` Jarod Wilson
2016-10-20 18:05     ` Haiyang Zhang via Virtualization
2016-10-20 18:05     ` Haiyang Zhang
2016-10-20 18:05       ` Haiyang Zhang
2016-10-20 20:12       ` Kershner, David A
2016-10-20 20:12         ` Kershner, David A
2016-10-20 20:23     ` Michael S. Tsirkin
2016-10-21  2:37       ` Jarod Wilson
2016-10-21  2:37         ` Jarod Wilson
2016-10-21  3:36         ` Michael S. Tsirkin
2016-10-21  3:36           ` Michael S. Tsirkin
2016-10-21 13:24           ` Aaron Conole
2016-10-21 13:24             ` Aaron Conole
2016-10-20 20:23     ` Michael S. Tsirkin
2016-10-21 10:09     ` Wei Liu
2016-10-21 10:09     ` Wei Liu
2016-10-20 17:55   ` [PATCH net-next v2 7/9] net: use core MTU range checking in misc drivers Jarod Wilson
2016-10-20 17:55     ` Jarod Wilson
2016-10-21  6:52     ` Rémi Denis-Courmont
2016-10-21  6:52       ` Rémi Denis-Courmont
2016-10-21 16:22     ` Sebastian Reichel
2016-10-21 16:22       ` Sebastian Reichel
     [not found]     ` <20161020175524.6184-8-jarod-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-10-22  7:17       ` [net-next,v2,7/9] " Sven Eckelmann
2016-10-22  7:17         ` Sven Eckelmann
2016-10-22 19:16     ` [PATCH net-next v2 7/9] " Stefan Richter
2016-10-22 19:16       ` Stefan Richter
2016-10-22 19:27       ` Stefan Richter
2016-10-23  1:18         ` Jarod Wilson
2016-10-23 14:29           ` [PATCH net-next 1/2] firewire: net: fix maximum possible MTU Stefan Richter
2016-10-23 14:30             ` [PATCH net-next 2/2] firewire: net: set initial MTU = 1500 unconditionally, fix IPv6 on some CardBus cards Stefan Richter
2016-10-23 14:30               ` Stefan Richter
2016-10-24  1:50               ` Jarod Wilson
2016-10-24 12:26                 ` [PATCH net-next 2/2 v2] " Stefan Richter
2016-10-24 12:26                   ` Stefan Richter
2016-10-25  3:05                   ` Jarod Wilson
2016-10-26 21:29               ` [PATCH net-next 2/2] " David Miller
2016-10-26 21:29                 ` David Miller
2016-10-29 20:16               ` [PATCH net-next] firewire: net: really fix maximum possible MTU Stefan Richter
2016-10-30  3:01                 ` David Miller
2016-10-24  1:50             ` [PATCH net-next 1/2] firewire: net: " Jarod Wilson
2016-10-26 21:29             ` David Miller
2016-10-26 21:29               ` David Miller
2016-10-20 17:55   ` [PATCH net-next v2 8/9] s390/net: use net core MTU range checking Jarod Wilson
2016-10-20 17:55   ` [PATCH net-next v2 9/9] ipv4/6: use core net " Jarod Wilson
2016-10-20 18:53   ` [PATCH net-next v2 0/9] net: use core MTU range checking everywhere David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='20161019141521.GB18569__22812.1985136115$1476890669$gmane$org@redhat.com' \
    --to=jarod@redhat.com \
    --cc=haiyangz@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pv-drivers@vmware.com \
    --cc=skhare@vmware.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.