Hi!
This seems to be needed so that 2.3.4 does not oops after loading
irmanager. (+ modified texts when irmanager is not loaded). Please apply,
Pavel
PS: Hmm, it still oopses a bit later, but this still seems like right fix.
diff -ur clean/net/irda/irmod.c linux/net/irda/irmod.c
--- clean/net/irda/irmod.c Wed Jun 2 14:10:38 1999
+++ linux/net/irda/irmod.c Wed Jun 2 14:18:08 1999
@@ -193,11 +193,13 @@
EXPORT_SYMBOL(irtty_unregister_dongle);
#endif
+static DECLARE_WAIT_QUEUE_HEAD(irda_wq_head);
+
__initfunc(int irda_init(void))
{
printk(KERN_INFO "IrDA (tm) Protocols for Linux-2.2 (Dag Brattli)\n");
- irlmp_init();
+ irlmp_init();
irlap_init();
irda_device_init();
@@ -211,9 +213,11 @@
irda_sysctl_register();
#endif
+
irda.dev.minor = MISC_DYNAMIC_MINOR;
irda.dev.name = "irda";
irda.dev.fops = &irda_fops;
+ irda.wait_queue = &irda_wq_head;
misc_register( &irda.dev);
@@ -321,7 +325,7 @@
/* Make sure irmanager is running */
if ( !irda.in_use) {
- printk( KERN_ERR "irmanager is not running!\n");
+ printk( KERN_ERR "irmanager is not running; >9600 is impossible
+without irmanager!\n");
return;
}
@@ -360,7 +364,7 @@
/* Make sure irmanager is running */
if ( !irda.in_use) {
- printk( KERN_ERR "irmanager is not running!\n");
+ printk( KERN_WARNING "irmanager is not running! (can not send
+notification)\n");
return;
}
@@ -377,7 +381,7 @@
enqueue_last( &irda.event_queue, (QUEUE *) new);
/* Wake up irmanager sleeping on read */
- wake_up_interruptible( &irda.wait_queue);
+ wake_up_interruptible( irda.wait_queue);
}
static int irda_open( struct inode * inode, struct file *file)
@@ -462,7 +466,7 @@
save_flags( flags);
cli();
if ( !irda.event_queue)
- interruptible_sleep_on( &irda.wait_queue);
+ interruptible_sleep_on( irda.wait_queue);
restore_flags(flags);
/*
--
I'm really [EMAIL PROTECTED] Look at http://195.113.31.123/~pavel. Pavel
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!