2006-08-12 21:47:12

by Alexey Dobriyan

[permalink] [raw]
Subject: Neverending module_param() bugs

Can someone think of a way to explicitly tell driver author that last
argument of module_param is PERMISSIONS, not default value? It's late
here I can't. Preferably resulting in compilation failure.

drivers/acpi/sbs.c:101:module_param(capacity_mode, int, CAPACITY_UNIT);
drivers/acpi/sbs.c:102:module_param(update_mode, int, UPDATE_MODE);
drivers/acpi/sbs.c:103:module_param(update_info_mode, int, UPDATE_INFO_MODE);
drivers/acpi/sbs.c:104:module_param(update_time, int, UPDATE_TIME);
drivers/acpi/sbs.c:105:module_param(update_time2, int, UPDATE_TIME2);
drivers/char/watchdog/sbc8360.c:203:module_param(timeout, int, 27);

P.S.: drivers/media/video/tuner-simple.c:13:module_param(offset, int, 0666);
^^^^


2006-08-13 00:54:22

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: Neverending module_param() bugs

Alexey,

Em Dom, 2006-08-13 ?s 01:47 +0400, Alexey Dobriyan escreveu:
> P.S.: drivers/media/video/tuner-simple.c:13:module_param(offset, int,
> 0666);

Good catch. We should change it to 0x664. I'll prepare such patch.

Anyway, this is not dangerous, since it just allows an offset adjustment
at tuning frequency of a TV capture board.

Cheers,
Mauro.

2006-08-13 02:19:40

by Jan-Benedict Glaw

[permalink] [raw]
Subject: Re: Neverending module_param() bugs

On Sat, 2006-08-12 21:54:01 -0300, Mauro Carvalho Chehab <[email protected]> wrote:
> Em Dom, 2006-08-13 às 01:47 +0400, Alexey Dobriyan escreveu:
> > P.S.: drivers/media/video/tuner-simple.c:13:module_param(offset, int,
> > 0666);
>
> Good catch. We should change it to 0x664. I'll prepare such patch.

But keep in mind it's really octal, not hex.

MfG, JBG

--
Jan-Benedict Glaw [email protected] +49-172-7608481
Signature of: ...und wenn Du denkst, es geht nicht mehr,
the second : kommt irgendwo ein Lichtlein her.


Attachments:
(No filename) (594.00 B)
signature.asc (189.00 B)
Digital signature
Download all attachments

2006-08-13 06:01:30

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: Neverending module_param() bugs

Em Dom, 2006-08-13 ?s 04:19 +0200, Jan-Benedict Glaw escreveu:
> On Sat, 2006-08-12 21:54:01 -0300, Mauro Carvalho Chehab <[email protected]> wrote:
> > Em Dom, 2006-08-13 ?s 01:47 +0400, Alexey Dobriyan escreveu:
> > > P.S.: drivers/media/video/tuner-simple.c:13:module_param(offset, int,
> > > 0666);
> >
> > Good catch. We should change it to 0x664. I'll prepare such patch.
>
> But keep in mind it's really octal, not hex.
Ah, sorry for the bad representation :)
>
> MfG, JBG
>
Cheers,
Mauro.

2006-08-29 17:07:12

by Ian E. Morgan

[permalink] [raw]
Subject: [PATCH][SBC8360] Re: Neverending module_param() bugs

On Sun, 13 Aug 2006, Alexey Dobriyan wrote:

> Can someone think of a way to explicitly tell driver author that last
> argument of module_param is PERMISSIONS, not default value? It's late
> here I can't. Preferably resulting in compilation failure.
>
> drivers/char/watchdog/sbc8360.c:203:module_param(timeout, int, 27);

Here's my fix for sbc8360, inlined and attached. Please merge.

Regards,
Ian Morgan

--
-------------------------------------------------------------------
Ian E. Morgan Vice President & C.O.O. Webcon, Inc.
imorgan at webcon dot ca PGP: #2DA40D07 http://www.webcon.ca
* Customized Linux Network Solutions for your Business *
-------------------------------------------------------------------

--- linux-2.6.17.11/drivers/char/watchdog/sbc8360.c.orig 2006-08-29 12:55:26.000000000 -0400
+++ linux-2.6.17.11/drivers/char/watchdog/sbc8360.c 2006-08-29 12:58:20.000000000 -0400
@@ -201,7 +201,7 @@ static int wd_margin = 0xB;
static int wd_multiplier = 2;
static int nowayout = WATCHDOG_NOWAYOUT;

-module_param(timeout, int, 27);
+module_param(timeout, int, 0);
MODULE_PARM_DESC(timeout, "Index into timeout table (0-63) (default=27 (60s))");
module_param(nowayout, int, 0);
MODULE_PARM_DESC(nowayout,
@@ -408,7 +408,7 @@ module_exit(sbc8360_exit);
MODULE_AUTHOR("Ian E. Morgan <[email protected]>");
MODULE_DESCRIPTION("SBC8360 watchdog driver");
MODULE_LICENSE("GPL");
-MODULE_VERSION("1.0");
+MODULE_VERSION("1.01");
MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);

/* end of sbc8360.c */


Attachments:
sbc8360-1.01.patch (818.00 B)