bonding: combine netlink and console error messages
authorJonathan Toppins <jtoppins@redhat.com>
Wed, 11 Aug 2021 02:53:31 +0000 (22:53 -0400)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Aug 2021 21:57:31 +0000 (14:57 -0700)
There seems to be no reason to have different error messages between
netlink and printk. It also cleans up the function slightly.

Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/bonding/bond_main.c

index 365953e8013ea1df7d7969f9ad1eaab7ec717368..c0db4e2b24626a471b31a865b296a3e4caeb4575 100644 (file)
@@ -1725,6 +1725,20 @@ void bond_lower_state_changed(struct slave *slave)
        netdev_lower_state_changed(slave->dev, &info);
 }
 
+#define BOND_NL_ERR(bond_dev, extack, errmsg) do {             \
+       if (extack)                                             \
+               NL_SET_ERR_MSG(extack, errmsg);                 \
+       else                                                    \
+               netdev_err(bond_dev, "Error: %s\n", errmsg);    \
+} while (0)
+
+#define SLAVE_NL_ERR(bond_dev, slave_dev, extack, errmsg) do {         \
+       if (extack)                                                     \
+               NL_SET_ERR_MSG(extack, errmsg);                         \
+       else                                                            \
+               slave_err(bond_dev, slave_dev, "Error: %s\n", errmsg);  \
+} while (0)
+
 /* enslave device <slave> to bond device <master> */
 int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
                 struct netlink_ext_ack *extack)
@@ -1738,9 +1752,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
 
        if (slave_dev->flags & IFF_MASTER &&
            !netif_is_bond_master(slave_dev)) {
-               NL_SET_ERR_MSG(extack, "Device with IFF_MASTER cannot be enslaved");
-               netdev_err(bond_dev,
-                          "Error: Device with IFF_MASTER cannot be enslaved\n");
+               BOND_NL_ERR(bond_dev, extack,
+                           "Device with IFF_MASTER cannot be enslaved");
                return -EPERM;
        }
 
@@ -1752,15 +1765,13 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
 
        /* already in-use? */
        if (netdev_is_rx_handler_busy(slave_dev)) {
-               NL_SET_ERR_MSG(extack, "Device is in use and cannot be enslaved");
-               slave_err(bond_dev, slave_dev,
-                         "Error: Device is in use and cannot be enslaved\n");
+               SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                            "Device is in use and cannot be enslaved");
                return -EBUSY;
        }
 
        if (bond_dev == slave_dev) {
-               NL_SET_ERR_MSG(extack, "Cannot enslave bond to itself.");
-               netdev_err(bond_dev, "cannot enslave bond to itself.\n");
+               BOND_NL_ERR(bond_dev, extack, "Cannot enslave bond to itself.");
                return -EPERM;
        }
 
@@ -1769,8 +1780,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
        if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {
                slave_dbg(bond_dev, slave_dev, "is NETIF_F_VLAN_CHALLENGED\n");
                if (vlan_uses_dev(bond_dev)) {
-                       NL_SET_ERR_MSG(extack, "Can not enslave VLAN challenged device to VLAN enabled bond");
-                       slave_err(bond_dev, slave_dev, "Error: cannot enslave VLAN challenged slave on VLAN enabled bond\n");
+                       SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                                    "Can not enslave VLAN challenged device to VLAN enabled bond");
                        return -EPERM;
                } else {
                        slave_warn(bond_dev, slave_dev, "enslaved VLAN challenged slave. Adding VLANs will be blocked as long as it is part of bond.\n");
@@ -1788,8 +1799,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
         * enslaving it; the old ifenslave will not.
         */
        if (slave_dev->flags & IFF_UP) {
-               NL_SET_ERR_MSG(extack, "Device can not be enslaved while up");
-               slave_err(bond_dev, slave_dev, "slave is up - this may be due to an out of date ifenslave\n");
+               SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                            "Device can not be enslaved while up");
                return -EPERM;
        }
 
@@ -1828,17 +1839,15 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
                                                 bond_dev);
                }
        } else if (bond_dev->type != slave_dev->type) {
-               NL_SET_ERR_MSG(extack, "Device type is different from other slaves");
-               slave_err(bond_dev, slave_dev, "ether type (%d) is different from other slaves (%d), can not enslave it\n",
-                         slave_dev->type, bond_dev->type);
+               SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                            "Device type is different from other slaves");
                return -EINVAL;
        }
 
        if (slave_dev->type == ARPHRD_INFINIBAND &&
            BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
-               NL_SET_ERR_MSG(extack, "Only active-backup mode is supported for infiniband slaves");
-               slave_warn(bond_dev, slave_dev, "Type (%d) supports only active-backup mode\n",
-                          slave_dev->type);
+               SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                            "Only active-backup mode is supported for infiniband slaves");
                res = -EOPNOTSUPP;
                goto err_undo_flags;
        }
@@ -1852,8 +1861,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
                                bond->params.fail_over_mac = BOND_FOM_ACTIVE;
                                slave_warn(bond_dev, slave_dev, "Setting fail_over_mac to active for active-backup mode\n");
                        } else {
-                               NL_SET_ERR_MSG(extack, "Slave device does not support setting the MAC address, but fail_over_mac is not set to active");
-                               slave_err(bond_dev, slave_dev, "The slave device specified does not support setting the MAC address, but fail_over_mac is not set to active\n");
+                               SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                                            "Slave device does not support setting the MAC address, but fail_over_mac is not set to active");
                                res = -EOPNOTSUPP;
                                goto err_undo_flags;
                        }
@@ -2149,8 +2158,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
        if (!slave_dev->netdev_ops->ndo_bpf ||
            !slave_dev->netdev_ops->ndo_xdp_xmit) {
                if (bond->xdp_prog) {
-                       NL_SET_ERR_MSG(extack, "Slave does not support XDP");
-                       slave_err(bond_dev, slave_dev, "Slave does not support XDP\n");
+                       SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                                    "Slave does not support XDP");
                        res = -EOPNOTSUPP;
                        goto err_sysfs_del;
                }
@@ -2163,10 +2172,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
                };
 
                if (dev_xdp_prog_count(slave_dev) > 0) {
-                       NL_SET_ERR_MSG(extack,
-                                      "Slave has XDP program loaded, please unload before enslaving");
-                       slave_err(bond_dev, slave_dev,
-                                 "Slave has XDP program loaded, please unload before enslaving\n");
+                       SLAVE_NL_ERR(bond_dev, slave_dev, extack,
+                                    "Slave has XDP program loaded, please unload before enslaving");
                        res = -EOPNOTSUPP;
                        goto err_sysfs_del;
                }
@@ -5190,17 +5197,15 @@ static int bond_xdp_set(struct net_device *dev, struct bpf_prog *prog,
 
                if (!slave_dev->netdev_ops->ndo_bpf ||
                    !slave_dev->netdev_ops->ndo_xdp_xmit) {
-                       NL_SET_ERR_MSG(extack, "Slave device does not support XDP");
-                       slave_err(dev, slave_dev, "Slave does not support XDP\n");
+                       SLAVE_NL_ERR(dev, slave_dev, extack,
+                                    "Slave device does not support XDP");
                        err = -EOPNOTSUPP;
                        goto err;
                }
 
                if (dev_xdp_prog_count(slave_dev) > 0) {
-                       NL_SET_ERR_MSG(extack,
-                                      "Slave has XDP program loaded, please unload before enslaving");
-                       slave_err(dev, slave_dev,
-                                 "Slave has XDP program loaded, please unload before enslaving\n");
+                       SLAVE_NL_ERR(dev, slave_dev, extack,
+                                    "Slave has XDP program loaded, please unload before enslaving");
                        err = -EOPNOTSUPP;
                        goto err;
                }