lkml.org 
[lkml]   [2002]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH]:Ethernet Bonding Driver-2.4.17

On Sat, 16 Feb 2002, Rajasekhar Inguva wrote:

> Hi all,
>
> The patch is WRT a problem with the Ethernet Bonding Driver when
> compiled as a module. Tested on 2.4.17
> and the patch is also against 2.4.17.
>
> # insmod bonding max_bonds=2
> Using /lib/modules/2.4.17/kernel/drivers/net/bonding.o
> Warning: /lib/modules/2.4.17/kernel/drivers/net/bonding.o parameter
> max_bonds
> has max < min!
> /lib/modules/2.4.17/kernel/drivers/net/bonding.o: unknown parameter type
> '(' for
> max_bonds
>
> and the module fails to load.
>
> The problem seems to be with the way MODULE_PARM was written for
> max_bonds.
>
> MODULE_PARM(max_bonds,"1-" __MODULE_STRING(INT_MAX) "i");
>
> INT_MAX is defined to be ((int)(~0U>>1)) and 'insmod' gets the string
> "1-((int)(~0U>>1))i" which it is failing to understand.
>
> As max_bonds is an integer and not an array, i feel omitting the min-max
> range would be a better option.
>
> And if a negative or zero value is supplied to max_bonds while loading,
> it can be taken care of in bonding_init() by setting it back to
> MAX_BONDS.
>
> Thx,
> Rajasekhar Inguva
>
>
> --- /usr/src/linux/drivers/net/bonding.c Fri Dec 21 23:11:54 2001
> +++ /usr/src/linux/drivers/fixed/bonding.c Sat Feb 16 17:03:48 2002
> @@ -226,7 +226,7 @@
> static struct bonding *these_bonds = NULL;
> static struct net_device *dev_bonds = NULL;
>
> -MODULE_PARM(max_bonds, "1-" __MODULE_STRING(INT_MAX) "i");
> +MODULE_PARM(max_bonds,"i");
> MODULE_PARM_DESC(max_bonds, "Max number of bonded devices");
> MODULE_PARM(miimon, "i");
> MODULE_PARM_DESC(miimon, "Link check interval in milliseconds");
> @@ -1981,6 +1981,10 @@
>
> /* Find a name for this unit */
> static struct net_device *dev_bond = NULL;
> +
> + /* If max_bonds <=0, set it to MAX_BONDS */
> + if(max_bonds <=0)
> + max_bonds = MAX_BONDS;


Imho you would need a check for the upper limit too. like:
if(max_bonds > MAX_BONDS)
max_bonds = MAX_BONDS;


>
> dev_bond = dev_bonds = kmalloc(max_bonds*sizeof(struct net_device),
> GFP_KERNEL);

--
pozsy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:24    [W:0.065 / U:0.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site