Re: Linux 2.0

Theodore Y. Ts'o (tytso@mit.edu)
Thu, 6 Jun 1996 17:59:31 -0400


From: Julia Anne Case <julie@linux1.magenet.com>
Date: Thu, 6 Jun 1996 13:51:23 -0400 (EDT)

I just compiled pre2.0.13 with serial support as a module and
when running setserial on the Boca board it caused ooops ...

I recompiled with serial support just in the kernel (not a
module) and the machine works fine. I can dig out the info from syslog
if you need it.

The following patch should fix things for you; my apologies. I was
trying to get too many changes to Linus in too short of a time.

- Ted

===================================================================
RCS file: drivers/char/RCS/serial.c,v
retrieving revision 1.1
diff -u -r1.1 drivers/char/serial.c
--- drivers/char/serial.c 1996/06/06 21:16:51 1.1
+++ drivers/char/serial.c 1996/06/06 21:18:09
@@ -90,13 +90,6 @@

#define _INLINE_ inline

-#ifdef MODULE
-static int io[PORT_MAX] = { 0, };
-static int irq[PORT_MAX] = { 0, };
-static int type[PORT_MAX] = { 0, };
-static int flags[PORT_MAX] = { 0, };
-#endif
-
#if defined(MODULE) && defined(SERIAL_DEBUG_MCOUNT)
#define DBG_CNT(s) printk("(%s): [%x] refc=%d, serc=%d, ttyc=%d -> %s\n", \
kdevname(tty->device), (info->flags), serial_refcount,info->count,tty->count,s)
@@ -212,6 +205,13 @@
};

#define NR_PORTS (sizeof(rs_table)/sizeof(struct async_struct))
+
+#ifdef MODULE
+static int io[NR_PORTS] = { 0, };
+static int irq[NR_PORTS] = { 0, };
+static int type[NR_PORTS] = { 0, };
+static int flags[NR_PORTS] = { 0, };
+#endif

static struct tty_struct *serial_table[NR_PORTS];
static struct termios *serial_termios[NR_PORTS];