linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / usb / serial / cyberjack.c
index d954ec3..2357b1d 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 
+#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
@@ -39,7 +40,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include <linux/usb/serial.h>
+#include "usb-serial.h"
 
 #define CYBERJACK_LOCAL_BUF_SIZE 32
 
@@ -214,14 +215,14 @@ static int cyberjack_write (struct usb_serial_port *port, const unsigned char *b
                return (0);
        }
 
-       spin_lock_bh(&port->lock);
+       spin_lock(&port->lock);
        if (port->write_urb_busy) {
-               spin_unlock_bh(&port->lock);
+               spin_unlock(&port->lock);
                dbg("%s - already writing", __FUNCTION__);
                return 0;
        }
        port->write_urb_busy = 1;
-       spin_unlock_bh(&port->lock);
+       spin_unlock(&port->lock);
 
        spin_lock_irqsave(&priv->lock, flags);
 
@@ -468,7 +469,7 @@ static void cyberjack_write_bulk_callback (struct urb *urb, struct pt_regs *regs
 
 exit:
        spin_unlock(&priv->lock);
-       usb_serial_port_softint(port);
+       schedule_work(&port->work);
 }
 
 static int __init cyberjack_init (void)