}
 
        if (slave_ops->ndo_set_mac_address == NULL) {
-               if (!bond_has_slaves(bond)) {
-                       pr_warn("%s: Warning: The first slave device specified does not support setting the MAC address\n",
-                               bond_dev->name);
-                       if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) {
+               pr_warn("%s: Warning: The slave device specified does not support setting the MAC address\n",
+                       bond_dev->name);
+               if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP &&
+                   bond->params.fail_over_mac != BOND_FOM_ACTIVE) {
+                       if (!bond_has_slaves(bond)) {
                                bond->params.fail_over_mac = BOND_FOM_ACTIVE;
                                pr_warn("%s: Setting fail_over_mac to active for active-backup mode\n",
                                        bond_dev->name);
+                       } else {
+                               pr_err("%s: Error: The slave device specified does not support setting the MAC address, but fail_over_mac is not set to active\n",
+                                      bond_dev->name);
+                               res = -EOPNOTSUPP;
+                               goto err_undo_flags;
                        }
-               } else if (bond->params.fail_over_mac != BOND_FOM_ACTIVE) {
-                       pr_err("%s: Error: The slave device specified does not support setting the MAC address, but fail_over_mac is not set to active\n",
-                              bond_dev->name);
-                       res = -EOPNOTSUPP;
-                       goto err_undo_flags;
                }
        }