On Wed, 2 Jan 2008 16:20:48 -0500 Jari Takkala wrote:

> Allow the user to specify an initial interface number when loading the 
> bonding driver. This is useful when loading multiple instances of the bonding 
> driver and you want to control the interface number assignment. For example, 
> if the user wishes to create a bond5 interface they can type 'modprobe -o 
> bond5 bonding ifnum=5'. It also works with the max_bonds option.
> 
> Signed-off-by: Jari Takkala <[EMAIL PROTECTED]>
> ---
> diff -ruN linux-2.6.23.12.orig/drivers/net/bonding/bond_main.c 
> linux-2.6.23.12/drivers/net/bonding/bond_main.c
> --- linux-2.6.23.12.orig/drivers/net/bonding/bond_main.c      2007-12-18 
> 16:55:57.000000000 -0500
> +++ linux-2.6.23.12/drivers/net/bonding/bond_main.c   2008-01-02 
> 14:49:37.000000000 -0500
> @@ -85,6 +85,7 @@
>  #define BOND_LINK_MON_INTERV 0
>  #define BOND_LINK_ARP_INTERV 0
>  
> +static int ifnum     = BOND_DEFAULT_IFNUM;
>  static int max_bonds = BOND_DEFAULT_MAX_BONDS;
>  static int miimon    = BOND_LINK_MON_INTERV;
>  static int updelay   = 0;
> @@ -99,6 +100,8 @@
>  static char *arp_validate = NULL;
>  struct bond_params bonding_defaults;
>  
> +module_param(ifnum, int, 0);

You could (should) make <ifnum> be unsigned int and then use
module_param(ifnum, uint, 0);
and then ...

> +MODULE_PARM_DESC(ifnum, "Initial interface number to assign");
>  module_param(max_bonds, int, 0);
>  MODULE_PARM_DESC(max_bonds, "Max number of bonded devices");
>  module_param(miimon, int, 0);
> @@ -4388,6 +4391,14 @@
>               }
>       }

then this block is mostly useless since ifnum cannot be < 0.
And how could it ever be > INT_MAX (when ifnum was an int)?

If <ifnum> is unsigned int but you want to limit it to INT_MAX,
then half of this if-test would be OK.

> +     if (ifnum < 0 || ifnum > INT_MAX) {
> +             printk(KERN_WARNING DRV_NAME
> +                    ": Warning: ifnum (%d) not in range %d-%d, so it "
> +                    "was reset to BOND_DEFAULT_IFNUM (%d)\n",
> +                    ifnum, 0, INT_MAX, BOND_DEFAULT_IFNUM);
> +             ifnum = BOND_DEFAULT_IFNUM;
> +     }
> +
>       if (max_bonds < 1 || max_bonds > INT_MAX) {
>               printk(KERN_WARNING DRV_NAME
>                      ": Warning: max_bonds (%d) not in range %d-%d, so it "


---
~Randy
desserts:  http://www.xenotime.net/linux/recipes/
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to