Signed-off-by: Alan Cox <[EMAIL PROTECTED]>

diff -u --new-file --recursive --exclude-from /usr/src/exclude 
linux.vanilla-2.6.25-rc2-mm1/drivers/usb/serial/io_ti.c 
linux-2.6.25-rc2-mm1/drivers/usb/serial/io_ti.c
--- linux.vanilla-2.6.25-rc2-mm1/drivers/usb/serial/io_ti.c     2008-02-19 
11:03:26.000000000 +0000
+++ linux-2.6.25-rc2-mm1/drivers/usb/serial/io_ti.c     2008-02-20 
11:52:43.000000000 +0000
@@ -2560,9 +2560,11 @@
 {
        struct edgeport_port *edge_port = usb_get_serial_port_data(port);
        unsigned int mcr;
+       unsigned long flags;
 
        dbg("%s - port %d", __FUNCTION__, port->number);
 
+       spin_lock_irqsave(&edge_port->ep_lock, flags);
        mcr = edge_port->shadow_mcr;
        if (set & TIOCM_RTS)
                mcr |= MCR_RTS;
@@ -2579,6 +2581,7 @@
                mcr &= ~MCR_LOOPBACK;
 
        edge_port->shadow_mcr = mcr;
+       spin_unlock_irqrestore(&edge_port->ep_lock, flags);
 
        TIRestoreMCR (edge_port, mcr);
 
@@ -2591,9 +2594,12 @@
        unsigned int result = 0;
        unsigned int msr;
        unsigned int mcr;
+       unsigned long flags;
 
        dbg("%s - port %d", __FUNCTION__, port->number);
 
+       spin_lock_irqsave(&edge_port->ep_lock, flags);
+
        msr = edge_port->shadow_msr;
        mcr = edge_port->shadow_mcr;
        result = ((mcr & MCR_DTR)       ? TIOCM_DTR: 0)   /* 0x002 */
@@ -2605,6 +2611,7 @@
 
 
        dbg("%s -- %x", __FUNCTION__, result);
+       spin_unlock_irqrestore(&edge_port->ep_lock, flags);
 
        return result;
 }
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to