Re: [PATCH] rocketport: make it work when statically linked into kernel

From: Bjorn Helgaas
Date: Mon Oct 24 2005 - 13:07:25 EST


On Monday 24 October 2005 11:47 am, Jiri Slaby wrote:
> >The driver had incorrectly wrapped module_init(rp_init) in #ifdef MODULE,
> >so it worked only when compiled as a module.
> >
> [snip]
> >
> >I also added the Comtrol support email address to MAINTAINERS.
> Nope, the e-mail in fact doesn't exist, I (or somebody?) removed it from
> MAINTAINERS.
> [They'll send you, that you can use web interface as an automatic answer.]

Yeah, you're right. I got the same automated response to my post,
though the web site still mentions the email address.

I don't think a lame web-only contact should really qualify as
"maintained" though. Anyway, attached is the same patch without
the MAINTAINERS update.




The driver had incorrectly wrapped module_init(rp_init) in #ifdef MODULE,
so it worked only when compiled as a module.

Tested by Wolfgang Denk with this device:

00:0e.0 Communication controller: Comtrol Corporation RocketPort 8 port w/RJ11 connectors (rev 04)
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at 7000 [size=64]

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>

Index: denk/drivers/char/rocket.c
===================================================================
--- denk.orig/drivers/char/rocket.c 2005-10-24 10:49:03.000000000 -0600
+++ denk/drivers/char/rocket.c 2005-10-24 10:49:04.000000000 -0600
@@ -256,7 +256,6 @@
static int sReadAiopID(ByteIO_t io);
static int sReadAiopNumChan(WordIO_t io);

-#ifdef MODULE
MODULE_AUTHOR("Theodore Ts'o");
MODULE_DESCRIPTION("Comtrol RocketPort driver");
module_param(board1, ulong, 0);
@@ -288,17 +287,14 @@
module_param_array(pc104_4, ulong, NULL, 0);
MODULE_PARM_DESC(pc104_4, "set interface types for ISA(PC104) board #4 (e.g. pc104_4=232,232,485,485,...");

-int rp_init(void);
+static int rp_init(void);
static void rp_cleanup_module(void);

module_init(rp_init);
module_exit(rp_cleanup_module);

-#endif

-#ifdef MODULE_LICENSE
MODULE_LICENSE("Dual BSD/GPL");
-#endif

/*************************************************************************/
/* Module code starts here */
@@ -2378,7 +2374,7 @@
/*
* The module "startup" routine; it's run when the module is loaded.
*/
-int __init rp_init(void)
+static int __init rp_init(void)
{
int retval, pci_boards_found, isa_boards_found, i;

@@ -2502,7 +2498,6 @@
return 0;
}

-#ifdef MODULE

static void rp_cleanup_module(void)
{
@@ -2530,7 +2525,6 @@
if (controller)
release_region(controller, 4);
}
-#endif

/***************************************************************************
Function: sInitController
-
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/