All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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.