]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
bonding: extract the use of real_device into local variable
authorJianbo Liu <jianbol@nvidia.com>
Fri, 23 Aug 2024 03:10:55 +0000 (06:10 +0300)
committerJakub Kicinski <kuba@kernel.org>
Tue, 27 Aug 2024 20:11:37 +0000 (13:11 -0700)
Add a local variable for slave->dev, to prepare for the lock change in
the next patch. There is no functionality change.

Fixes: 9a5605505d9c ("bonding: Add struct bond_ipesc to manage SA")
Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
Reviewed-by: Cosmin Ratiu <cratiu@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Jay Vosburgh <jv@jvosburgh.net>
Link: https://patch.msgid.link/20240823031056.110999-3-jianbol@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/bonding/bond_main.c

index 2b4b7ad9cd2de1fe2dba8832b6c32f13524c66a4..f9849174842091abd14fe1b2527794be42460dc1 100644 (file)
@@ -427,6 +427,7 @@ static int bond_ipsec_add_sa(struct xfrm_state *xs,
                             struct netlink_ext_ack *extack)
 {
        struct net_device *bond_dev = xs->xso.dev;
+       struct net_device *real_dev;
        struct bond_ipsec *ipsec;
        struct bonding *bond;
        struct slave *slave;
@@ -443,9 +444,10 @@ static int bond_ipsec_add_sa(struct xfrm_state *xs,
                return -ENODEV;
        }
 
-       if (!slave->dev->xfrmdev_ops ||
-           !slave->dev->xfrmdev_ops->xdo_dev_state_add ||
-           netif_is_bond_master(slave->dev)) {
+       real_dev = slave->dev;
+       if (!real_dev->xfrmdev_ops ||
+           !real_dev->xfrmdev_ops->xdo_dev_state_add ||
+           netif_is_bond_master(real_dev)) {
                NL_SET_ERR_MSG_MOD(extack, "Slave does not support ipsec offload");
                rcu_read_unlock();
                return -EINVAL;
@@ -456,9 +458,9 @@ static int bond_ipsec_add_sa(struct xfrm_state *xs,
                rcu_read_unlock();
                return -ENOMEM;
        }
-       xs->xso.real_dev = slave->dev;
 
-       err = slave->dev->xfrmdev_ops->xdo_dev_state_add(xs, extack);
+       xs->xso.real_dev = real_dev;
+       err = real_dev->xfrmdev_ops->xdo_dev_state_add(xs, extack);
        if (!err) {
                ipsec->xs = xs;
                INIT_LIST_HEAD(&ipsec->list);
@@ -475,6 +477,7 @@ static int bond_ipsec_add_sa(struct xfrm_state *xs,
 static void bond_ipsec_add_sa_all(struct bonding *bond)
 {
        struct net_device *bond_dev = bond->dev;
+       struct net_device *real_dev;
        struct bond_ipsec *ipsec;
        struct slave *slave;
 
@@ -483,12 +486,13 @@ static void bond_ipsec_add_sa_all(struct bonding *bond)
        if (!slave)
                goto out;
 
-       if (!slave->dev->xfrmdev_ops ||
-           !slave->dev->xfrmdev_ops->xdo_dev_state_add ||
-           netif_is_bond_master(slave->dev)) {
+       real_dev = slave->dev;
+       if (!real_dev->xfrmdev_ops ||
+           !real_dev->xfrmdev_ops->xdo_dev_state_add ||
+           netif_is_bond_master(real_dev)) {
                spin_lock_bh(&bond->ipsec_lock);
                if (!list_empty(&bond->ipsec_list))
-                       slave_warn(bond_dev, slave->dev,
+                       slave_warn(bond_dev, real_dev,
                                   "%s: no slave xdo_dev_state_add\n",
                                   __func__);
                spin_unlock_bh(&bond->ipsec_lock);
@@ -497,9 +501,9 @@ static void bond_ipsec_add_sa_all(struct bonding *bond)
 
        spin_lock_bh(&bond->ipsec_lock);
        list_for_each_entry(ipsec, &bond->ipsec_list, list) {
-               ipsec->xs->xso.real_dev = slave->dev;
-               if (slave->dev->xfrmdev_ops->xdo_dev_state_add(ipsec->xs, NULL)) {
-                       slave_warn(bond_dev, slave->dev, "%s: failed to add SA\n", __func__);
+               ipsec->xs->xso.real_dev = real_dev;
+               if (real_dev->xfrmdev_ops->xdo_dev_state_add(ipsec->xs, NULL)) {
+                       slave_warn(bond_dev, real_dev, "%s: failed to add SA\n", __func__);
                        ipsec->xs->xso.real_dev = NULL;
                }
        }
@@ -515,6 +519,7 @@ out:
 static void bond_ipsec_del_sa(struct xfrm_state *xs)
 {
        struct net_device *bond_dev = xs->xso.dev;
+       struct net_device *real_dev;
        struct bond_ipsec *ipsec;
        struct bonding *bond;
        struct slave *slave;
@@ -532,16 +537,17 @@ static void bond_ipsec_del_sa(struct xfrm_state *xs)
        if (!xs->xso.real_dev)
                goto out;
 
-       WARN_ON(xs->xso.real_dev != slave->dev);
+       real_dev = slave->dev;
+       WARN_ON(xs->xso.real_dev != real_dev);
 
-       if (!slave->dev->xfrmdev_ops ||
-           !slave->dev->xfrmdev_ops->xdo_dev_state_delete ||
-           netif_is_bond_master(slave->dev)) {
-               slave_warn(bond_dev, slave->dev, "%s: no slave xdo_dev_state_delete\n", __func__);
+       if (!real_dev->xfrmdev_ops ||
+           !real_dev->xfrmdev_ops->xdo_dev_state_delete ||
+           netif_is_bond_master(real_dev)) {
+               slave_warn(bond_dev, real_dev, "%s: no slave xdo_dev_state_delete\n", __func__);
                goto out;
        }
 
-       slave->dev->xfrmdev_ops->xdo_dev_state_delete(xs);
+       real_dev->xfrmdev_ops->xdo_dev_state_delete(xs);
 out:
        spin_lock_bh(&bond->ipsec_lock);
        list_for_each_entry(ipsec, &bond->ipsec_list, list) {
@@ -558,6 +564,7 @@ out:
 static void bond_ipsec_del_sa_all(struct bonding *bond)
 {
        struct net_device *bond_dev = bond->dev;
+       struct net_device *real_dev;
        struct bond_ipsec *ipsec;
        struct slave *slave;
 
@@ -568,21 +575,22 @@ static void bond_ipsec_del_sa_all(struct bonding *bond)
                return;
        }
 
+       real_dev = slave->dev;
        spin_lock_bh(&bond->ipsec_lock);
        list_for_each_entry(ipsec, &bond->ipsec_list, list) {
                if (!ipsec->xs->xso.real_dev)
                        continue;
 
-               if (!slave->dev->xfrmdev_ops ||
-                   !slave->dev->xfrmdev_ops->xdo_dev_state_delete ||
-                   netif_is_bond_master(slave->dev)) {
-                       slave_warn(bond_dev, slave->dev,
+               if (!real_dev->xfrmdev_ops ||
+                   !real_dev->xfrmdev_ops->xdo_dev_state_delete ||
+                   netif_is_bond_master(real_dev)) {
+                       slave_warn(bond_dev, real_dev,
                                   "%s: no slave xdo_dev_state_delete\n",
                                   __func__);
                } else {
-                       slave->dev->xfrmdev_ops->xdo_dev_state_delete(ipsec->xs);
-                       if (slave->dev->xfrmdev_ops->xdo_dev_state_free)
-                               slave->dev->xfrmdev_ops->xdo_dev_state_free(ipsec->xs);
+                       real_dev->xfrmdev_ops->xdo_dev_state_delete(ipsec->xs);
+                       if (real_dev->xfrmdev_ops->xdo_dev_state_free)
+                               real_dev->xfrmdev_ops->xdo_dev_state_free(ipsec->xs);
                }
        }
        spin_unlock_bh(&bond->ipsec_lock);