[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191016083956.GB2638@localhost.localdomain>
Date: Wed, 16 Oct 2019 10:39:56 +0200
From: Lorenzo Bianconi <lorenzo@...nel.org>
To: Jakub Kicinski <jakub.kicinski@...ronome.com>
Cc: netdev@...r.kernel.org, lorenzo.bianconi@...hat.com,
davem@...emloft.net, thomas.petazzoni@...tlin.com,
brouer@...hat.com, ilias.apalodimas@...aro.org,
matteo.croce@...hat.com, mw@...ihalf.com
Subject: Re: [PATCH v3 net-next 5/8] net: mvneta: add basic XDP support
> On Mon, 14 Oct 2019 12:49:52 +0200, Lorenzo Bianconi wrote:
> > @@ -3983,6 +4071,46 @@ static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
> > return phylink_mii_ioctl(pp->phylink, ifr, cmd);
> > }
> >
> > +static int mvneta_xdp_setup(struct net_device *dev, struct bpf_prog *prog,
> > + struct netlink_ext_ack *extack)
> > +{
> > + struct mvneta_port *pp = netdev_priv(dev);
> > + struct bpf_prog *old_prog;
> > +
> > + if (prog && dev->mtu > MVNETA_MAX_RX_BUF_SIZE) {
> > + NL_SET_ERR_MSG_MOD(extack, "Jumbo frames not supported on XDP");
> > + return -EOPNOTSUPP;
> > + }
> > +
> > + if (netif_running(dev))
> > + mvneta_stop(dev);
> > +
> > + old_prog = xchg(&pp->xdp_prog, prog);
> > + if (old_prog)
> > + bpf_prog_put(old_prog);
> > +
> > + if (netif_running(dev))
> > + mvneta_open(dev);
>
> Ah, the stopping and starting of the interface is sad. If start fails
> the interface is left in a funky state until someone does a stop/start
> cycle. Not that you introduced that.
I will add a return check from mvneta_open here. Thx.
Regards,
Lorenzo
>
> > + return 0;
> > +}
> > +
> > +static int mvneta_xdp(struct net_device *dev, struct netdev_bpf *xdp)
> > +{
> > + struct mvneta_port *pp = netdev_priv(dev);
> > +
> > + switch (xdp->command) {
> > + case XDP_SETUP_PROG:
> > + return mvneta_xdp_setup(dev, xdp->prog, xdp->extack);
> > + case XDP_QUERY_PROG:
> > + xdp->prog_id = pp->xdp_prog ? pp->xdp_prog->aux->id : 0;
> > + return 0;
> > + default:
> > + NL_SET_ERR_MSG_MOD(xdp->extack, "unknown XDP command");
>
> Please drop this message here, there are commands you legitimately
> don't care about, just return -EINVAL, no need to risk leaking a
> meaningless warning to the user space.
>
> > + return -EINVAL;
> > + }
> > +}
Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)
Powered by blists - more mailing lists