Re: __setup in modules 2.3.13

Thomas Sailer (sailer@ife.ee.ethz.ch)
Thu, 12 Aug 1999 15:58:51 +0200


This is a multi-part message in MIME format.
--------------31D3A67A0748EBF04FB22A89
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

"Garst R. Reese" wrote:
>
> It seems that something needs exporting.
> In particular, drivers/scsi/scsi.c won't build as a module, and
> complains vigoursly about __setup.
> Garst

No; __setup only works if compiled into the kernel. It is usually
not needed in modules, since setup just sets variables as a function
of the kernel command line. You can directly set variables on
the modprobe command line. Something like the attached
patch should work.

Tom
--------------31D3A67A0748EBF04FB22A89
Content-Type: text/plain; charset=us-ascii;
name="scsi.c.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="scsi.c.diff"

--- drivers/scsi/scsi.c 1999/08/09 23:52:49 1.1
+++ drivers/scsi/scsi.c 1999/08/09 23:56:44
@@ -406,6 +406,11 @@
up(SCpnt->request.sem);
}

+MODULE_PARM(scsi_logging_level, "i");
+MODULE_PARM_DESC(scsi_logging_level, "SCSI logging level; should be zero or nonzero");
+
+#ifndef MODULE
+
static int __init scsi_logging_setup (char *str)
{
int tmp;
@@ -422,12 +427,19 @@

__setup("scsi_logging=", scsi_logging_setup);

+#endif
+
#ifdef CONFIG_SCSI_MULTI_LUN
static int max_scsi_luns = 8;
#else
static int max_scsi_luns = 1;
#endif

+MODULE_PARM(max_scsi_luns, "i");
+MODULE_PARM_DESC(max_scsi_luns, "last scsi LUN (should be between 1 and 8)");
+
+#ifndef MODULE
+
static int __init scsi_luns_setup (char *str)
{
int tmp;
@@ -443,6 +455,9 @@
}

__setup("max_scsi_luns=", scsi_luns_setup);
+
+#endif
+
/*
* Detecting SCSI devices :
* We scan all present host adapter's busses, from ID 0 to ID (max_id).

--------------31D3A67A0748EBF04FB22A89--

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