From: Aaron Conole <aconole@bytheb.org>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jarod Wilson <jarod@redhat.com>,
David Kershner <david.kershner@unisys.com>,
Wei Liu <wei.liu2@citrix.com>,
"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,
Paul Durrant <paul.durrant@citrix.com>,
Shrikrishna Khare <skhare@vmware.com>
Subject: Re: [PATCH net-next v2 6/9] net: use core MTU range checking in virt drivers
Date: Fri, 21 Oct 2016 09:24:25 -0400 [thread overview]
Message-ID: <f7tshrpygvq.fsf@redhat.com> (raw)
In-Reply-To: <20161021063505-mutt-send-email-mst@kernel.org> (Michael S. Tsirkin's message of "Fri, 21 Oct 2016 06:36:25 +0300")
"Michael S. Tsirkin" <mst@redhat.com> writes:
> On Thu, Oct 20, 2016 at 10:37:20PM -0400, Jarod Wilson wrote:
>> On Thu, Oct 20, 2016 at 11:23:54PM +0300, Michael S. Tsirkin wrote:
>> > On Thu, Oct 20, 2016 at 01:55:21PM -0400, Jarod Wilson wrote:
>> ...
>> > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>> > > index fad84f3..720809f 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 ETH_MAX_MTU
>> > > +
>> >
>> > Can we drop these btw?
>>
>> Bah. Yeah. Should have just used them directly. I didn't add ETH_MAX_MTU
>> until after doing the virtio_net changes, so I missed that.
>>
>> > > 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)
>> >
>> > In fact the > max_mtu branch does not make sense since a 16 bit
>> > value can't exceed MAX_MTU.
>>
>> Hm. mtu is declared as an int, not sure if there's any sort of type
>> promotion to be worried about (not an area I know much/anything about).
>
> Not by design, that's for sure.
If you're really worried, we could declare it as a u16. The value
returned from virtio_cread16 is type u16, and there are no type
promotion rules I'm aware of that would do the wrong thing there.
>> Certainly something that could be looked into as a minor optimization,
>> though it's only in a probe path and shouldn't hurt anything, so ... meh?
>
> Right. Aaron said he's working on a patch that essentially does
> dev->max_mtu = mtu after validation, so this part will look
> a bit silly there.
Agreed, but I can do that in my patch if you don't want the extra churn.
-Aaron
next prev parent reply other threads:[~2016-10-21 13:24 UTC|newest]
Thread overview: 69+ 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:59 ` Michael S. Tsirkin
2016-10-19 14:03 ` Michael S. Tsirkin
2016-10-19 14:17 ` Jarod Wilson
2016-10-19 14:15 ` Jarod Wilson
2016-10-19 14:07 ` Haiyang Zhang via Virtualization
2016-10-19 14:23 ` Jarod Wilson
2016-10-19 22:21 ` Shrikrishna Khare
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 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 ` [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 18:05 ` Haiyang Zhang
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 3:36 ` Michael S. Tsirkin
2016-10-21 13:24 ` Aaron Conole [this message]
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-21 6:52 ` Rémi Denis-Courmont
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 19:16 ` [PATCH net-next v2 7/9] " 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-24 1:50 ` Jarod Wilson
2016-10-24 12:26 ` [PATCH net-next 2/2 v2] " Stefan Richter
2016-10-25 3:05 ` Jarod Wilson
2016-10-26 21:29 ` [PATCH net-next 2/2] " 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-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=f7tshrpygvq.fsf@redhat.com \
--to=aconole@bytheb.org \
--cc=david.kershner@unisys.com \
--cc=haiyangz@microsoft.com \
--cc=jarod@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=paul.durrant@citrix.com \
--cc=pv-drivers@vmware.com \
--cc=skhare@vmware.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=wei.liu2@citrix.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).