All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <liuhangbin@gmail.com>
To: Nikolay Aleksandrov <razor@blackwall.org>
Cc: netdev@vger.kernel.org, Jay Vosburgh <j.vosburgh@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>,
	Tariq Toukan <tariqt@nvidia.com>, Jianbo Liu <jianbol@nvidia.com>,
	Sabrina Dubroca <sd@queasysnail.net>
Subject: Re: [PATCHv2 net-next 1/3] bonding: add common function to check ipsec device
Date: Mon, 19 Aug 2024 16:43:30 +0800	[thread overview]
Message-ID: <ZsMFspiLZojq3EIO@Laptop-X1> (raw)
In-Reply-To: <a60116a2-bcbd-4d0f-9cfb-7717c188e26f@blackwall.org>

On Mon, Aug 19, 2024 at 11:02:14AM +0300, Nikolay Aleksandrov wrote:
> > +static struct net_device bond_ipsec_dev(struct xfrm_state *xs)
> > +{
> > +	struct net_device *bond_dev = xs->xso.dev;
> > +	struct net_device *real_dev;
> > +	struct bonding *bond;
> > +	struct slave *slave;
> > +
> > +	if (!bond_dev)
> > +		return NULL;
> > +
> > +	bond = netdev_priv(bond_dev);
> > +	slave = rcu_dereference(bond->curr_active_slave);
> > +	real_dev = slave ? slave->dev : NULL;
> > +
> > +	if ((BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) ||
> > +	    !slave || !real_dev || !xs->xso.real_dev)
> > +		return NULL;
> 
> No need to check !slave again here.  !real_dev implies !slave and
> vice-versa, if it is set then we must have had a slave.

Ah yes, I missed this.

> I prefer the more obvious way - check slave after deref and
> bail out, similar to my fix, I think it is easier to follow the
> code and more obvious. Although I don't feel strong about that
> it's just a preference. :)

I don't have a inclination, I just want to check all the error and fail out.
If we check each one separately, do you think if I should do like

	if (!bond_dev)
		return NULL;

	bond = netdev_priv(bond_dev);
	if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP)
		return NULL;

	slave = rcu_dereference(bond->curr_active_slave);
	if (!slave)
		return NULL;

> > +	WARN_ON(xs->xso.real_dev != slave->dev);

Here as you said, the WARN_ON would be triggered easily, do you think if I
should change to pr_warn or salve_warn?

Thanks
Hangbin

  reply	other threads:[~2024-08-19  8:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-19  7:53 [PATCHv2 net-next 0/2] Bonding: support new xfrm state offload functions Hangbin Liu
2024-08-19  7:53 ` [PATCHv2 net-next 1/3] bonding: add common function to check ipsec device Hangbin Liu
2024-08-19  8:02   ` Nikolay Aleksandrov
2024-08-19  8:43     ` Hangbin Liu [this message]
2024-08-19  8:48       ` Nikolay Aleksandrov
2024-08-19 14:37   ` Simon Horman
2024-08-19 23:07     ` Hangbin Liu
2024-08-19 19:24   ` kernel test robot
2024-08-19 20:16   ` kernel test robot
2024-08-19  7:53 ` [PATCHv2 net-next 2/3] bonding: Add ESN support to IPSec HW offload Hangbin Liu
2024-08-19  8:03   ` Nikolay Aleksandrov
2024-08-19 21:17   ` kernel test robot
2024-08-19 23:01     ` Hangbin Liu
2024-08-19  7:53 ` [PATCHv2 net-next 3/3] bonding: support xfrm state update Hangbin Liu
2024-08-19  8:03   ` Nikolay Aleksandrov
2024-08-19  8:43 ` [PATCHv2 net-next 0/2] Bonding: support new xfrm state offload functions Nikolay Aleksandrov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZsMFspiLZojq3EIO@Laptop-X1 \
    --to=liuhangbin@gmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=j.vosburgh@gmail.com \
    --cc=jianbol@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=razor@blackwall.org \
    --cc=sd@queasysnail.net \
    --cc=tariqt@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.