ChangeSet 1.1193, 2003/05/20 17:02:44-07:00, baldrick@wanadoo.fr

[PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in tasklets

Replace spin_lock_irqsave/spin_unlock_irqrestore with
spin_lock_irq/spin_unlock_irq in tasklet actions, since
these are always called with local irqs enabled.


diff -Nru a/drivers/usb/misc/speedtch.c b/drivers/usb/misc/speedtch.c
--- a/drivers/usb/misc/speedtch.c	Tue May 20 17:24:16 2003
+++ b/drivers/usb/misc/speedtch.c	Tue May 20 17:24:16 2003
@@ -534,7 +534,6 @@
 {
 	struct udsl_instance_data *instance = (struct udsl_instance_data *) data;
 	struct udsl_receiver *rcv;
-	unsigned long flags;
 	unsigned char *data_start;
 	struct sk_buff *skb;
 	struct urb *urb;
@@ -544,11 +543,11 @@
 
 	dbg ("udsl_process_receive entered");
 
-	spin_lock_irqsave (&instance->completed_receivers_lock, flags);
+	spin_lock_irq (&instance->completed_receivers_lock);
 	while (!list_empty (&instance->completed_receivers)) {
 		rcv = list_entry (instance->completed_receivers.next, struct udsl_receiver, list);
 		list_del (&rcv->list);
-		spin_unlock_irqrestore (&instance->completed_receivers_lock, flags);
+		spin_unlock_irq (&instance->completed_receivers_lock);
 
 		urb = rcv->urb;
 		dbg ("udsl_process_receive: got packet %p with length %d and status %d", urb, urb->actual_length, urb->status);
@@ -606,15 +605,15 @@
 			/* fall through */
 		default: /* error or urb unlinked */
 			dbg ("udsl_process_receive: adding to spare_receivers");
-			spin_lock_irqsave (&instance->spare_receivers_lock, flags);
+			spin_lock_irq (&instance->spare_receivers_lock);
 			list_add (&rcv->list, &instance->spare_receivers);
-			spin_unlock_irqrestore (&instance->spare_receivers_lock, flags);
+			spin_unlock_irq (&instance->spare_receivers_lock);
 			break;
 		} /* switch */
 
-		spin_lock_irqsave (&instance->completed_receivers_lock, flags);
+		spin_lock_irq (&instance->completed_receivers_lock);
 	} /* while */
-	spin_unlock_irqrestore (&instance->completed_receivers_lock, flags);
+	spin_unlock_irq (&instance->completed_receivers_lock);
 	dbg ("udsl_process_receive successful");
 }
 
@@ -684,7 +683,6 @@
 {
 	struct udsl_send_buffer *buf;
 	int err;
-	unsigned long flags;
 	struct udsl_instance_data *instance = (struct udsl_instance_data *) data;
 	unsigned int num_written;
 	struct sk_buff *skb;
@@ -693,7 +691,7 @@
 	dbg ("udsl_process_send entered");
 
 made_progress:
-	spin_lock_irqsave (&instance->send_lock, flags);
+	spin_lock_irq (&instance->send_lock);
 	while (!list_empty (&instance->spare_senders)) {
 		if (!list_empty (&instance->filled_buffers)) {
 			buf = list_entry (instance->filled_buffers.next, struct udsl_send_buffer, list);
@@ -707,7 +705,7 @@
 
 		snd = list_entry (instance->spare_senders.next, struct udsl_sender, list);
 		list_del (&snd->list);
-		spin_unlock_irqrestore (&instance->send_lock, flags);
+		spin_unlock_irq (&instance->send_lock);
 
 		snd->buffer = buf;
 	        usb_fill_bulk_urb (snd->urb,
@@ -722,16 +720,16 @@
 
 		if ((err = usb_submit_urb(snd->urb, GFP_ATOMIC)) < 0) {
 			dbg ("submission failed (%d)!", err);
-			spin_lock_irqsave (&instance->send_lock, flags);
+			spin_lock_irq (&instance->send_lock);
 			list_add (&snd->list, &instance->spare_senders);
-			spin_unlock_irqrestore (&instance->send_lock, flags);
+			spin_unlock_irq (&instance->send_lock);
 			list_add (&buf->list, &instance->filled_buffers);
 			return;
 		}
 
-		spin_lock_irqsave (&instance->send_lock, flags);
+		spin_lock_irq (&instance->send_lock);
 	} /* while */
-	spin_unlock_irqrestore (&instance->send_lock, flags);
+	spin_unlock_irq (&instance->send_lock);
 
 	if (!instance->current_skb && !(instance->current_skb = skb_dequeue (&instance->sndqueue))) {
 		dbg ("done - no more skbs");
@@ -741,16 +739,16 @@
 	skb = instance->current_skb;
 
 	if (!(buf = instance->current_buffer)) {
-		spin_lock_irqsave (&instance->send_lock, flags);
+		spin_lock_irq (&instance->send_lock);
 		if (list_empty (&instance->spare_buffers)) {
 			instance->current_buffer = NULL;
-			spin_unlock_irqrestore (&instance->send_lock, flags);
+			spin_unlock_irq (&instance->send_lock);
 			dbg ("done - no more buffers");
 			return;
 		}
 		buf = list_entry (instance->spare_buffers.next, struct udsl_send_buffer, list);
 		list_del (&buf->list);
-		spin_unlock_irqrestore (&instance->send_lock, flags);
+		spin_unlock_irq (&instance->send_lock);
 
 		buf->free_start = buf->base;
 		buf->free_cells = UDSL_SND_BUFFER_SIZE;
