Messages in this thread | | | From | Igor Russkikh <> | Subject | Re: [EXT] [PATCH net-next v3 05/15] net: macsec: hardware offloading infrastructure | Date | Wed, 18 Dec 2019 13:40:39 +0000 |
| |
Hi Antoine,
> @@ -2922,7 +3300,27 @@ static int macsec_changelink(struct net_device > *dev, struct nlattr *tb[], > data[IFLA_MACSEC_PORT]) > return -EINVAL; > > - return macsec_changelink_common(dev, data); > + /* If h/w offloading is available, propagate to the device */ > + if (macsec_is_offloaded(macsec)) { > + const struct macsec_ops *ops; > + struct macsec_context ctx; > + int ret; > + > + ops = macsec_get_ops(netdev_priv(dev), &ctx); > + if (!ops) > + return -EOPNOTSUPP; > + > + ctx.secy = &macsec->secy; > + ret = macsec_offload(ops->mdo_upd_secy, &ctx); > + if (ret) > + return ret; > + } > + > + ret = macsec_changelink_common(dev, data);
In our mac driver verification we see that propagating upd_secy to device before doing macsec_changelink_common is actually useless, since in this case underlying device can't fetch any of the updated parameters from the macsec structures.
Isn't it logical first doing `macsec_changelink_common` and then propagate the event?
--
Regards, Igor
| |