From: Rusty Russell <rusty@rustcorp.com.au>
To: Mikael Pettersson <mikpe@csd.uu.se>
Cc: linux-kernel@vger.kernel.org
Subject: Re: two 2.5 modules bugs
Date: Sat, 28 Dec 2002 21:37:22 +1100 [thread overview]
Message-ID: <20021228104213.7DA7B2C07C@lists.samba.org> (raw)
In-Reply-To: Your message of "Fri, 27 Dec 2002 17:16:35 BST." <200212271616.RAA03356@harpo.it.uu.se>
In message <200212271616.RAA03356@harpo.it.uu.se> you write:
> 1. With kernel 2.5.53 and module-init-tools-0.9.6, "modprobe tulip"
> fails and goes into an infinite CPU-consuming loop. The problem
> appears to be related to the dependency from tulip to crc32. If I
> manually modprobe crc32 before modprobe tulip, it works. If crc32
> isn't loaded, modprobe tulip first loads crc32 and then loops.
>
> module-init-tools-0.9.5 did not have this problem.
This should be fixed in 0.9.6: a double free caused all kinds of wierd
behavior. Please tell me if this fixes it.
> 2. The implementation of old-style MODULE_PARMs with type "1-16s"
> is broken. Instead of splicing the parameter at the commas and
> storing pointers to the substrings in consecutive array elements,
> the whole string is stored in the array instead.
>
> Consider parport_pc.c, which contains (simplified):
>
> static const char *irq[16];
> MODULE_PARM(irq, "1-16s");
>
> "modprobe parport_pc irq=007" should store a pointer to "007" in
> irq[0], but instead (unsigned int)irq[0] == 0x00373030, the ASCII
> representation of "007" in little-endian. (Kernel 2.5.53 on x86,
> with module-init-tools-0.9.[56].)
Ew. I horribly misinterpreted "1-16s" to mean "a string 1-16 chars
long". The obvious fix (untested) is:
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.53/kernel/module.c working-2.5.53-sparam/kernel/module.c
--- linux-2.5.53/kernel/module.c 2002-12-26 15:41:06.000000000 +1100
+++ working-2.5.53-sparam/kernel/module.c 2002-12-28 21:32:34.000000000 +1100
@@ -604,7 +604,8 @@ extern int set_obsolete(const char *val,
return param_array(kp->name, val, min, max, obsparm->addr,
sizeof(long), param_set_long);
case 's':
- return param_string(kp->name, val, min, max, obsparm->addr);
+ return param_array(kp->name, val, min, max, obsparm->addr,
+ sizeof(char *), param_set_charp);
}
printk(KERN_ERR "Unknown obsolete parameter type %s\n", obsparm->type);
return -EINVAL;
I'll test this tomorrow...
Thanks for the bug report!
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
next prev parent reply other threads:[~2002-12-28 10:33 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-27 16:16 two 2.5 modules bugs Mikael Pettersson
2002-12-27 23:24 ` Petr Vandrovec
2002-12-28 10:37 ` Rusty Russell [this message]
2002-12-28 15:40 ` Want a random entropy source? Stephen Satchell
2002-12-28 16:00 ` John Bradford
2002-12-28 16:38 ` Dr. David Alan Gilbert
2002-12-28 16:47 ` Russell King
2002-12-28 17:15 ` John Bradford
2002-12-28 20:28 ` Folkert van Heusden
2002-12-28 20:39 ` John Bradford
2002-12-28 20:53 ` Folkert van Heusden
2002-12-28 23:20 ` Stephen Satchell
2002-12-28 23:41 ` John Bradford
2002-12-28 20:27 ` Folkert van Heusden
-- strict thread matches above, loose matches on Subject: below --
2002-12-29 20:18 two 2.5 modules bugs Mikael Pettersson
2002-12-30 6:13 ` Rusty Russell
2002-12-30 11:39 Rusty Russell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20021228104213.7DA7B2C07C@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=mikpe@csd.uu.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.