X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fusb%2Fserial%2Fcyberjack.c;fp=drivers%2Fusb%2Fserial%2Fcyberjack.c;h=2357b1d102d7e5fef562be87c47ca703d35d678c;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=d954ec34b018504b0cde6706030e3a29fac46ea9;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c index d954ec34b..2357b1d10 100644 --- a/drivers/usb/serial/cyberjack.c +++ b/drivers/usb/serial/cyberjack.c @@ -28,6 +28,7 @@ */ +#include #include #include #include @@ -39,7 +40,7 @@ #include #include #include -#include +#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)