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!

Reply via email to