USB speedtouch: spin_lock_irqsave -> spin_lock_irq in process context

USB speedtouch: spin_lock_irqsave -> spin_lock_irq in process context

Post by Duncan Sand » Thu, 22 May 2003 01:00:28



Replace spin_lock_irqsave/spin_unlock_irqrestore with
spin_lock_irq/spin_unlock_irq in routines that are only
called in process context.

 speedtch.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)

diff -Nru a/drivers/usb/misc/speedtch.c b/drivers/usb/misc/speedtch.c
--- a/drivers/usb/misc/speedtch.c       Wed May 21 00:40:22 2003

 static void udsl_fire_receivers (struct udsl_instance_data *instance)
 {
        struct list_head receivers, *pos, *n;
-       unsigned long flags;

        INIT_LIST_HEAD (&receivers);

        down (&instance->serialize);

-       spin_lock_irqsave (&instance->spare_receivers_lock, flags);
+       spin_lock_irq (&instance->spare_receivers_lock);
        list_splice_init (&instance->spare_receivers, &receivers);
-       spin_unlock_irqrestore (&instance->spare_receivers_lock, flags);
+       spin_unlock_irq (&instance->spare_receivers_lock);

        list_for_each_safe (pos, n, &receivers) {

                if (usb_submit_urb (rcv->urb, GFP_KERNEL) < 0) {
                        dbg ("udsl_fire_receivers: submit failed!");
-                       spin_lock_irqsave (&instance->spare_receivers_lock, flags);
+                       spin_lock_irq (&instance->spare_receivers_lock);
                        list_move (pos, &instance->spare_receivers);
-                       spin_unlock_irqrestore (&instance->spare_receivers_lock, flags);
+                       spin_unlock_irq (&instance->spare_receivers_lock);
                }
        }

 static void udsl_cancel_send (struct udsl_instance_data *instance, struct atm_vcc *vcc)
 {
-       unsigned long flags;
        struct sk_buff *skb, *n;

        dbg ("udsl_cancel_send entered");
-       spin_lock_irqsave (&instance->sndqueue.lock, flags);
+       spin_lock_irq (&instance->sndqueue.lock);
        for (skb = instance->sndqueue.next, n = skb->next; skb != (struct sk_buff *)&instance->sndqueue; skb = n, n = skb->next)
                if (UDSL_SKB (skb)->atm_data.vcc == vcc) {

                        else
                                kfree_skb (skb);
                }
-       spin_unlock_irqrestore (&instance->sndqueue.lock, flags);
+       spin_unlock_irq (&instance->sndqueue.lock);

        tasklet_disable (&instance->send_tasklet);

 {
        struct udsl_instance_data *instance = usb_get_intfdata (intf);
        struct list_head *pos;
-       unsigned long flags;
        unsigned int count = 0;
        int result, i;

        do {
                unsigned int completed = 0;

-               spin_lock_irqsave (&instance->completed_receivers_lock, flags);
+               spin_lock_irq (&instance->completed_receivers_lock);
                list_for_each (pos, &instance->completed_receivers)
                        if (++completed > count)
                                panic (__FILE__ ": memory corruption detected at line %d!\n", __LINE__);
-               spin_unlock_irqrestore (&instance->completed_receivers_lock, flags);
+               spin_unlock_irq (&instance->completed_receivers_lock);

                dbg ("udsl_usb_disconnect: found %u completed receivers", completed);

        /* wait for completion handlers to finish */
        do {
                count = 0;
-               spin_lock_irqsave (&instance->send_lock, flags);
+               spin_lock_irq (&instance->send_lock);
                list_for_each (pos, &instance->spare_senders)
                        if (++count > UDSL_NUM_SND_URBS)
                                panic (__FILE__ ": memory corruption detected at line %d!\n", __LINE__);
-               spin_unlock_irqrestore (&instance->send_lock, flags);
+               spin_unlock_irq (&instance->send_lock);

                dbg ("udsl_usb_disconnect: found %u spare senders", count);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/