diff options
Diffstat (limited to 'drivers/net/bonding/bond_options.c')
| -rw-r--r-- | drivers/net/bonding/bond_options.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c index 9a5223c7b4d1..ea6f640782b7 100644 --- a/drivers/net/bonding/bond_options.c +++ b/drivers/net/bonding/bond_options.c | |||
| @@ -45,10 +45,15 @@ int bond_option_mode_set(struct bonding *bond, int mode) | |||
| 45 | return -EPERM; | 45 | return -EPERM; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | if (BOND_MODE_IS_LB(mode) && bond->params.arp_interval) { | 48 | if (BOND_NO_USES_ARP(mode) && bond->params.arp_interval) { |
| 49 | pr_err("%s: %s mode is incompatible with arp monitoring.\n", | 49 | pr_info("%s: %s mode is incompatible with arp monitoring, start mii monitoring\n", |
| 50 | bond->dev->name, bond_mode_tbl[mode].modename); | 50 | bond->dev->name, bond_mode_tbl[mode].modename); |
| 51 | return -EINVAL; | 51 | /* disable arp monitoring */ |
| 52 | bond->params.arp_interval = 0; | ||
| 53 | /* set miimon to default value */ | ||
| 54 | bond->params.miimon = BOND_DEFAULT_MIIMON; | ||
| 55 | pr_info("%s: Setting MII monitoring interval to %d.\n", | ||
| 56 | bond->dev->name, bond->params.miimon); | ||
| 52 | } | 57 | } |
| 53 | 58 | ||
| 54 | /* don't cache arp_validate between modes */ | 59 | /* don't cache arp_validate between modes */ |
