aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_main.c
diff options
context:
space:
mode:
authorJay Vosburgh <fubar@us.ibm.com>2008-06-13 21:12:04 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-06-18 00:00:04 -0400
commitb8a9787eddb0e4665f31dd1d64584732b2b5d051 (patch)
tree08b7537e70b6a96bc04d231d31ccd644e1387e62 /drivers/net/bonding/bond_main.c
parentb59f9f74c4c0a569398f08c34a877f1b7b457496 (diff)
bonding: Allow setting max_bonds to zero
Permit bonding to function rationally if max_bonds is set to zero. This will load the module, but create no master devices (which can be created via sysfs). Requires some change to bond_create_sysfs; currently, the netdev sysfs directory is determined from the first bonding device created, but this is no longer possible. Instead, an interface from net/core is created to create and destroy files in net_class. Based on a patch submitted by Phil Oester <kernel@linuxaces.com>. Modified by Jay Vosburgh to fix the sysfs issue mentioned above and to update the documentation. Signed-off-by: Phil Oester <kernel@linuxace.com> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
-rw-r--r--drivers/net/bonding/bond_main.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 3b6d66a8ab98..d57b65dc2c72 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4750,11 +4750,11 @@ static int bond_check_params(struct bond_params *params)
4750 } 4750 }
4751 } 4751 }
4752 4752
4753 if (max_bonds < 1 || max_bonds > INT_MAX) { 4753 if (max_bonds < 0 || max_bonds > INT_MAX) {
4754 printk(KERN_WARNING DRV_NAME 4754 printk(KERN_WARNING DRV_NAME
4755 ": Warning: max_bonds (%d) not in range %d-%d, so it " 4755 ": Warning: max_bonds (%d) not in range %d-%d, so it "
4756 "was reset to BOND_DEFAULT_MAX_BONDS (%d)\n", 4756 "was reset to BOND_DEFAULT_MAX_BONDS (%d)\n",
4757 max_bonds, 1, INT_MAX, BOND_DEFAULT_MAX_BONDS); 4757 max_bonds, 0, INT_MAX, BOND_DEFAULT_MAX_BONDS);
4758 max_bonds = BOND_DEFAULT_MAX_BONDS; 4758 max_bonds = BOND_DEFAULT_MAX_BONDS;
4759 } 4759 }
4760 4760
@@ -4953,7 +4953,7 @@ static int bond_check_params(struct bond_params *params)
4953 4953
4954 printk("\n"); 4954 printk("\n");
4955 4955
4956 } else { 4956 } else if (max_bonds) {
4957 /* miimon and arp_interval not set, we need one so things 4957 /* miimon and arp_interval not set, we need one so things
4958 * work as expected, see bonding.txt for details 4958 * work as expected, see bonding.txt for details
4959 */ 4959 */