summaryrefslogtreecommitdiffstats
path: root/drivers/sbus
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2001-01-10 05:27:25 +0000
committerRalf Baechle <ralf@linux-mips.org>2001-01-10 05:27:25 +0000
commitc9c06167e7933d93a6e396174c68abf242294abb (patch)
treed9a8bb30663e9a3405a1ef37ffb62bc14b9f019f /drivers/sbus
parentf79e8cc3c34e4192a3e5ef4cc9c6542fdef703c0 (diff)
Merge with Linux 2.4.0-test12.
Diffstat (limited to 'drivers/sbus')
-rw-r--r--drivers/sbus/audio/dmy.c2
-rw-r--r--drivers/sbus/char/aurora.c20
-rw-r--r--drivers/sbus/char/sab82532.c16
3 files changed, 20 insertions, 18 deletions
diff --git a/drivers/sbus/audio/dmy.c b/drivers/sbus/audio/dmy.c
index 560134ba2..91cc447fb 100644
--- a/drivers/sbus/audio/dmy.c
+++ b/drivers/sbus/audio/dmy.c
@@ -547,7 +547,7 @@ static void dummy_start_output(struct sparcaudio_driver *drv, __u8 * buffer,
dummy_chip->perchip_info.play.active = 1;
/* fake an "interrupt" to deal with this block */
- dummy_chip->tqueue.next = NULL;
+ INIT_LIST_HEAD(&dummy_chip->tqueue.list);
dummy_chip->tqueue.sync = 0;
dummy_chip->tqueue.routine = dummy_output_done_task;
dummy_chip->tqueue.data = drv;
diff --git a/drivers/sbus/char/aurora.c b/drivers/sbus/char/aurora.c
index f2ee5ccc3..c640c9fe8 100644
--- a/drivers/sbus/char/aurora.c
+++ b/drivers/sbus/char/aurora.c
@@ -1,4 +1,4 @@
-/* $Id: aurora.c,v 1.9 2000/11/08 05:33:03 davem Exp $
+/* $Id: aurora.c,v 1.10 2000/12/07 04:35:38 anton Exp $
* linux/drivers/sbus/char/aurora.c -- Aurora multiport driver
*
* Copyright (c) 1999 by Oliver Aldulea (oli@bv.ro)
@@ -666,9 +666,11 @@ static void aurora_check_modem(struct Aurora_board const * bp, int chip)
if (sbus_readb(&bp->r[chip]->r[CD180_MSVR]) & MSVR_CD)
wake_up_interruptible(&port->open_wait);
else if (!((port->flags & ASYNC_CALLOUT_ACTIVE) &&
- (port->flags & ASYNC_CALLOUT_NOHUP)))
- queue_task(&port->tqueue_hangup,
- &tq_scheduler);
+ (port->flags & ASYNC_CALLOUT_NOHUP))) {
+ MOD_INC_USE_COUNT;
+ if (schedule_task(&port->tqueue_hangup) == 0)
+ MOD_DEC_USE_COUNT;
+ }
}
/* We don't have such things yet. My aurora board has DTR and RTS swapped, but that doesn't count in this driver. Let's hope
@@ -2211,13 +2213,13 @@ static void do_aurora_hangup(void *private_)
printk("do_aurora_hangup: start\n");
#endif
tty = port->tty;
- if (tty == NULL)
- return;
-
- tty_hangup(tty);
+ if (tty != NULL) {
+ tty_hangup(tty); /* FIXME: module removal race - AKPM */
#ifdef AURORA_DEBUG
- printk("do_aurora_hangup: end\n");
+ printk("do_aurora_hangup: end\n");
#endif
+ }
+ MOD_DEC_USE_COUNT;
}
static void aurora_hangup(struct tty_struct * tty)
diff --git a/drivers/sbus/char/sab82532.c b/drivers/sbus/char/sab82532.c
index fa5f383c3..5de83158b 100644
--- a/drivers/sbus/char/sab82532.c
+++ b/drivers/sbus/char/sab82532.c
@@ -1,4 +1,4 @@
-/* $Id: sab82532.c,v 1.53 2000/11/15 07:28:09 davem Exp $
+/* $Id: sab82532.c,v 1.54 2000/12/07 04:35:39 anton Exp $
* sab82532.c: ASYNC Driver for the SIEMENS SAB82532 DUSCC.
*
* Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
@@ -527,8 +527,9 @@ check_modem:
#ifdef SERIAL_DEBUG_OPEN
printk("scheduling hangup...");
#endif
-
- queue_task(&info->tqueue_hangup, &tq_scheduler);
+ MOD_INC_USE_COUNT;
+ if (schedule_task(&info->tqueue_hangup) == 0)
+ MOD_DEC_USE_COUNT;
}
}
@@ -676,10 +677,9 @@ static void do_serial_hangup(void *private_)
struct tty_struct *tty;
tty = info->tty;
- if (!tty)
- return;
-
- tty_hangup(tty);
+ if (tty)
+ tty_hangup(tty);
+ MOD_DEC_USE_COUNT;
}
static void
@@ -2134,7 +2134,7 @@ static void __init sab82532_kgdb_hook(int line)
static inline void __init show_serial_version(void)
{
- char *revision = "$Revision: 1.53 $";
+ char *revision = "$Revision: 1.54 $";
char *version, *p;
version = strchr(revision, ' ');