Subject: Re: [PATCH net-next] net: virtio: use eth_hw_addr_set()

From: "Michael S. Tsirkin" <[email-masked]>
Date: Wed, 27 Oct 2021 03:40:24 -0400

On Wed, Oct 27, 2021 at 03:24:55PM +0800, Jason Wang wrote:
> On Wed, Oct 27, 2021 at 10:45 AM Jason Wang <[email-masked]> wrote:
> >
> > On Wed, Oct 27, 2021 at 1:56 AM Jakub Kicinski <[email-masked]> wrote:
> > >
> > > Commit 406f42fa0d3c ("net-next: When a bond have a massive amount
> > > of VLANs...") introduced a rbtree for faster Ethernet address look
> > > up. To maintain netdev->dev_addr in this tree we need to make all
> > > the writes to it go through appropriate helpers.
> >
> > I think the title should be "net: virtio: use eth_hw_addr_set()"
> 
> I meant "dev_addr_set()" actually.
> 
> Thanks

Good point, this confused me too. Could be fixed up when applying?

> >
> > >
> > > Signed-off-by: Jakub Kicinski <[email-masked]>
> > > ---
> > > CC: [email-masked]
> > > CC: [email-masked]
> > > CC: [email-masked]
> > > ---
> > >  drivers/net/virtio_net.c | 10 +++++++---
> > >  1 file changed, 7 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> > > index c501b5974aee..b7f35aff8e82 100644
> > > --- a/drivers/net/virtio_net.c
> > > +++ b/drivers/net/virtio_net.c
> > > @@ -3177,12 +3177,16 @@ static int virtnet_probe(struct virtio_device *vdev)
> > >         dev->max_mtu = MAX_MTU;
> > >
> > >         /* Configuration may specify what MAC to use.  Otherwise random. */
> > > -       if (virtio_has_feature(vdev, VIRTIO_NET_F_MAC))
> > > +       if (virtio_has_feature(vdev, VIRTIO_NET_F_MAC)) {
> > > +               u8 addr[MAX_ADDR_LEN];
> > > +
> > >                 virtio_cread_bytes(vdev,
> > >                                    offsetof(struct virtio_net_config, mac),
> > > -                                  dev->dev_addr, dev->addr_len);
> > > -       else
> > > +                                  addr, dev->addr_len);
> > > +               dev_addr_set(dev, addr);
> > > +       } else {
> > >                 eth_hw_addr_random(dev);
> > > +       }
> >
> > Do we need to change virtnet_set_mac_address() as well?
> >
> > Thanks
> >
> > >
> > >         /* Set up our device-specific information */
> > >         vi = netdev_priv(dev);
> > > --
> > > 2.31.1
> > >