Re: Bug#240886: module-init-tools: modprobe pass wrong ide optionsto insmod

From: Rusty Russell
Date: Tue Mar 30 2004 - 20:15:15 EST


On Wed, 2004-03-31 at 02:25, Marco d'Itri wrote:
...
> modprobe -v -k ide-mod options="ide=nodma hdc=cdrom"
>
> resulting in
>
> insmod the_module "options=ide=nodma hdc=cdrom"
>
> will not work.

There are two problems here: one is in modprobe, but the real problem is
that putting:

options ide-mod options="ide=nodma hdc=cdrom"

will be handed to ide-mod as:

"ide=nodma hdc=cdrom"

ie. with the quotes intact. It doesn't handle that, and probably
shouldn't.

Name: Fix Quote Handling in Parameters
Status: Tested on 2.6.5-rc3

Agustin Martin <agmartin@xxxxxxxxxx> pointed out that this doesn't
work:

options ide-mod options="ide=nodma hdc=cdrom"

The quotes are understood by kernel/params.c (ie. it skips over spaces
inside them), but are not stripped before handing to the underlying
function. They should be.

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .7471-linux-2.6.5-rc3/kernel/params.c .7471-linux-2.6.5-rc3.updated/kernel/params.c
--- .7471-linux-2.6.5-rc3/kernel/params.c 2003-10-09 18:03:02.000000000 +1000
+++ .7471-linux-2.6.5-rc3.updated/kernel/params.c 2004-03-31 11:02:44.000000000 +1000
@@ -96,6 +96,13 @@ static char *next_arg(char *args, char *
else {
args[equals] = '\0';
*val = args + equals + 1;
+
+ /* Don't include quotes in value. */
+ if (**val == '"') {
+ (*val)++;
+ if (args[i-1] == '"')
+ args[i-1] = '\0';
+ }
}

if (args[i]) {

--
Anyone who quotes me in their signature is an idiot -- Rusty Russell

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