: bonding module parameter problem
Hi:
There seems to be a problem in module bonding.o (just the interesting part follows, kernel version is 2.4.17):
user@machine:/tmp$ /sbin/modinfo bonding
license: "GPL"
warning: parameter max_bonds has max < min!
parm: max_bonds unknown format character '('parm: miimon int, description "Link check interval in milliseconds"At /usr/src/linux/drivers/net/bonding.c, line 229:MODULE_PARM(max_bonds, "1-" __MODULE_STRING(INT_MAX) "i"); MODULE_PARM_DESC(max_bonds, "Max number of bonded devices");
And at /usr/src/linux/include/linux/kernel.h, line 19:
#define INT_MAX ((int)(~0U>>1))
There are some places (/usr/src/linux/net/ipv4/netfilter/ip_conntrack_ftp.c line 19) with similar macro invocations that work OK. It seems macro MODULE_PARM gets confused with those parentheses in #define INT_MAX
This problem is still in 2.4.18-pre2, but seems that is solved upstream
(http://sf.net/projects/bonding/), see:
http://telia.dl.sourceforge.net/bonding/bonding-2.4.17-20020102
Signature · 4 lines
José Luis Domingo López Linux Registered User #189436 Debian Linux Woody (P166 64 MB RAM) jdomingo AT internautas DOT org => Spam at your own risk
Quoted 3 lines · On Wed, 9 Jan 2002 23:13:55 +0100 Jos <[email protected]> wrote:
At
/usr/src/linux/drivers/net/bonding.c, line 229:MODULE_PARM(max_bonds, "1-" __MODULE_STRING(INT_MAX) "i");MODULE_PARM_DESC(max_bonds, "Max number of bonded devices");
This is wrong. When I did my module rewrite patch, I noted a number of mis-uses of the MODULE_PARM macro (mine does type checking, so the compiler found them).
You are saying that max_bonds is an ARRAY of 1-INT_MAX integers! The same mistake is made in the patch on sf.net/projects/bonding/.
Here is the patch against .17, for inspiration:
drivers/net/bonding.c +1 -1
@@ -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" );
Cheers!
Rusty.
Signature · 1 line
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.