From: Jesper Dangaard Brouer <bro...@redhat.com>
Date: Fri, 28 Jun 2019 15:35:52 +0200

> On Fri, 28 Jun 2019 13:39:15 +0300
> Ilias Apalodimas <ilias.apalodi...@linaro.org> wrote:
> 
>> +static int netsec_xdp_setup(struct netsec_priv *priv, struct bpf_prog *prog,
>> +                        struct netlink_ext_ack *extack)
>> +{
>> +    struct net_device *dev = priv->ndev;
>> +    struct bpf_prog *old_prog;
>> +
>> +    /* For now just support only the usual MTU sized frames */
>> +    if (prog && dev->mtu > 1500) {
>> +            NL_SET_ERR_MSG_MOD(extack, "Jumbo frames not supported on XDP");
>> +            return -EOPNOTSUPP;
>> +    }
>> +
>> +    if (netif_running(dev))
>> +            netsec_netdev_stop(dev);
>> +
>> +    /* Detach old prog, if any */
>> +    old_prog = xchg(&priv->xdp_prog, prog);
>> +    if (old_prog)
>> +            bpf_prog_put(old_prog);
>> +
>> +    if (netif_running(dev))
>> +            netsec_netdev_open(dev);
> 
> Shouldn't the if-statement be if (!netif_running(dev))

Hmmm, does netsec_netdev_stop() clear the running flag?  That just
runs the driver internal routine and doesn't update IFF_UP et
al. which the core networking would do.

Reply via email to