2009-03-09 20:44:20

by Ingo Brückl

[permalink] [raw]
Subject: [PATCH] unnecessary SCSI module

When configuring MODULES with the kernel to be able to load external drivers
coming as modules, but not using anything as module in the kernel itself, one
would expect to end up in a module-free kernel. Currently, you don't if you
use SCSI. You'll get one unnecessary module.

Please consider the attached patch.

Signed-off-by: Ingo Brueckl <[email protected]>

--- linux-2.6.28/drivers/scsi/Kconfig.orig 2008-12-25 00:26:37.000000000 +0100
+++ linux-2.6.28/drivers/scsi/Kconfig 2009-03-06 22:49:40.000000000 +0100
@@ -259,7 +259,7 @@ config SCSI_SCAN_ASYNC
config SCSI_WAIT_SCAN
tristate
default m
- depends on SCSI
+ depends on SCSI = m || SCSI_SCAN_ASYNC = y
depends on MODULES

menu "SCSI Transports"


2009-03-09 21:10:44

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] unnecessary SCSI module

On Mon, 2009-03-09 at 20:06 +0100, Ingo Brueckl wrote:
> When configuring MODULES with the kernel to be able to load external drivers
> coming as modules, but not using anything as module in the kernel itself, one
> would expect to end up in a module-free kernel. Currently, you don't if you
> use SCSI. You'll get one unnecessary module.
>
> Please consider the attached patch.
>
> Signed-off-by: Ingo Brueckl <[email protected]>
>
> --- linux-2.6.28/drivers/scsi/Kconfig.orig 2008-12-25 00:26:37.000000000 +0100
> +++ linux-2.6.28/drivers/scsi/Kconfig 2009-03-06 22:49:40.000000000 +0100
> @@ -259,7 +259,7 @@ config SCSI_SCAN_ASYNC
> config SCSI_WAIT_SCAN
> tristate
> default m
> - depends on SCSI
> + depends on SCSI = m || SCSI_SCAN_ASYNC = y

This isn't right because SCSI_SCAN_ASYNC only sets the *default*
behaviour of the kernel. Even if it's n the user can still boot up with
async scans by setting the kernel parameter.

It also keeps coming up regularly:

http://marc.info/?t=122658550300002

James

2009-03-10 07:15:34

by Ingo Brückl

[permalink] [raw]
Subject: [PATCH] unnecessary SCSI module

James Bottomley <[email protected]> writes:

>> When configuring MODULES with the kernel to be able to load external
>> drivers coming as modules, but not using anything as module in the kernel
>> itself, one would expect to end up in a module-free kernel. Currently, you
>> don't if you use SCSI. You'll get one unnecessary module.

> This isn't right because SCSI_SCAN_ASYNC only sets the *default*
> behaviour of the kernel. Even if it's n the user can still boot up with
> async scans by setting the kernel parameter.

Ok, understood. But has it to be a module then? Why not giving the choice
between building it directly into the kernel or as a module?

> It also keeps coming up regularly:

Well, then something doesn't seem to be ok, does it? ;-)

Ingo

Signed-off-by: Ingo Brueckl <[email protected]>

--- linux-2.6.28/drivers/scsi/Kconfig.orig 2008-12-25 00:26:37.000000000 +0100
+++ linux-2.6.28/drivers/scsi/Kconfig 2009-03-10 08:11:38.000000000 +0100
@@ -257,10 +257,14 @@ config SCSI_SCAN_ASYNC
or async on the kernel's command line.

config SCSI_WAIT_SCAN
- tristate
- default m
+ tristate "SCSI wait scanning"
depends on SCSI
depends on MODULES
+ help
+ If you are using a SCSI module and do asynchronous SCSI scanning
+ (either by having selected SCSI_SCAN_ASYNC or by specifying
+ "scsi_mod.scan=async" on the kernel's command line), you MUST say Y
+ here.

menu "SCSI Transports"
depends on SCSI

2009-03-10 14:46:48

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] unnecessary SCSI module

On Tue, 2009-03-10 at 08:00 +0100, Ingo Brueckl wrote:
> James Bottomley <[email protected]> writes:
>
> >> When configuring MODULES with the kernel to be able to load external
> >> drivers coming as modules, but not using anything as module in the kernel
> >> itself, one would expect to end up in a module-free kernel. Currently, you
> >> don't if you use SCSI. You'll get one unnecessary module.
>
> > This isn't right because SCSI_SCAN_ASYNC only sets the *default*
> > behaviour of the kernel. Even if it's n the user can still boot up with
> > async scans by setting the kernel parameter.
>
> Ok, understood. But has it to be a module then? Why not giving the choice
> between building it directly into the kernel or as a module?

If you read through the threads, that question is answered.

> > It also keeps coming up regularly:
>
> Well, then something doesn't seem to be ok, does it? ;-)

James

2009-03-10 17:26:07

by Stefan Richter

[permalink] [raw]
Subject: Re: [PATCH] unnecessary SCSI module

James Bottomley wrote:
> On Mon, 2009-03-09 at 20:06 +0100, Ingo Brueckl wrote:
>> When configuring MODULES with the kernel to be able to load external drivers
>> coming as modules, but not using anything as module in the kernel itself, one
>> would expect to end up in a module-free kernel. Currently, you don't if you
>> use SCSI. You'll get one unnecessary module.
>>
>> Please consider the attached patch.
>>
>> Signed-off-by: Ingo Brueckl <[email protected]>
>>
>> --- linux-2.6.28/drivers/scsi/Kconfig.orig 2008-12-25 00:26:37.000000000 +0100
>> +++ linux-2.6.28/drivers/scsi/Kconfig 2009-03-06 22:49:40.000000000 +0100
>> @@ -259,7 +259,7 @@ config SCSI_SCAN_ASYNC
>> config SCSI_WAIT_SCAN
>> tristate
>> default m
>> - depends on SCSI
>> + depends on SCSI = m || SCSI_SCAN_ASYNC = y
>
> This isn't right because SCSI_SCAN_ASYNC only sets the *default*
> behaviour of the kernel. Even if it's n the user can still boot up with
> async scans by setting the kernel parameter.

Indeed. Also, the issue is not with /how/ SCSI_WAIT_SCAN is switched
on, it is perhaps with /that/ SCSI_WAIT_SCAN is switched on.

SCSI_WAIT_SCAN is a Kconfig variable which does not have a prompt ---
like a large number of other Kconfig variables. Like most of these
other hidden Kconfig variables, SCSI_WAIT_SCAN controls a very compact
part of kernel functionality. Its only difference to most if not all of
these variables is that it is a tristate variable which controls
building of a .ko.

> It also keeps coming up regularly:
>
> http://marc.info/?t=122658550300002
>
> James

And it will keep coming up because the reasons for these choices
(default to m instead of n, no prompt) are not at all obvious. Perhaps
you should add a comment to drivers/scsi/Kconfig.

Actually while I superficially searched the archive right now I did not
find the reason for not prompting for this variable, other than "it
doesn't hurt to build this module". Could be that there is an
assumption that people who want the wait scan module in their initrd
were unable to find a respective Kconfig prompt.
--
Stefan Richter
-=====-==--= --== -=-=-
http://arcgraph.de/sr/