Subject: Re: [GIT PULL] Please pull mlx5 MACsec RoCEv2 support

From: Leon Romanovsky <[email-masked]>
Date: Sat, 19 Aug 2023 09:25:44 +0300

On Fri, Aug 18, 2023 at 08:02:53PM -0700, Jakub Kicinski wrote:
> On Sun, 13 Aug 2023 09:47:03 +0300 Leon Romanovsky wrote:
> > This PR is collected from https://lore.kernel.org/all/[email-masked]
> > and contains patches to support mlx5 MACsec RoCEv2.
> 
> +bool macsec_netdev_is_offloaded(struct net_device *dev)
> +{
> +       if (!dev)
> +               return false;
> +
> +       return macsec_is_offloaded(macsec_priv(dev));
> +}
> +EXPORT_SYMBOL_GPL(macsec_netdev_is_offloaded);
> 
> No defensive programming, please, why are you checking that dev is NULL?

I missed that in CR, dev is always valid for all macsec_netdev_is_offloaded() callers

  240         ndev = rcu_dereference(attr->ndev);
  241         if (!ndev) {
  242                 rcu_read_unlock();
  243                 return -ENODEV;
  244         }
  245
  246         if (!netif_is_macsec(ndev) || !macsec_netdev_is_offloaded(ndev)) {
  247                 rcu_read_unlock();
  248                 return 0;
  249         }

> 
> > It is based on -rc4 and such has minor conflict with net-next due to
> > existance of IPsec packet offlosd in eswitch code and the resolution
> > is to take both hunks.
> > 
> > diff --cc include/linux/mlx5/driver.h
> > index 25d0528f9219,3ec8155c405d..000000000000
> > --- a/include/linux/mlx5/driver.h
> > +++ b/include/linux/mlx5/driver.h
> > @@@ -805,6 -806,11 +805,14 @@@ struct mlx5_core_dev 
> >   	u32                      vsc_addr;
> >   	struct mlx5_hv_vhca	*hv_vhca;
> >   	struct mlx5_thermal	*thermal;
> > + 	u64			num_block_tc;
> > + 	u64			num_block_ipsec;
> > + #ifdef CONFIG_MLX5_MACSEC
> > + 	struct mlx5_macsec_fs *macsec_fs;
> > + #endif
> >   };
> >   
> >   struct mlx5_db {
> 
> That's not how the resolution looks. Do the merge yourself, then show
> the actual 3-way resolution.

ok, will do.

Thanks