<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">ChangeSet 1.1216, 2003/06/18 16:34:29-07:00, baldrick@wanadoo.fr

[PATCH] USB speedtouch: spin_lock_irqsave -&gt; spin_lock_irq in process context

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


 drivers/usb/speedtouch.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)


diff -Nru a/drivers/usb/speedtouch.c b/drivers/usb/speedtouch.c
--- a/drivers/usb/speedtouch.c	Wed Jun 18 17:36:11 2003
+++ b/drivers/usb/speedtouch.c	Wed Jun 18 17:36:11 2003
@@ -614,15 +614,14 @@
 static void udsl_fire_receivers (struct udsl_instance_data *instance)
 {
 	struct list_head receivers, *pos, *n;
-	unsigned long flags;
 
 	INIT_LIST_HEAD (&amp;receivers);
 
 	down (&amp;instance-&gt;serialize);
 
-	spin_lock_irqsave (&amp;instance-&gt;spare_receivers_lock, flags);
+	spin_lock_irq (&amp;instance-&gt;spare_receivers_lock);
 	list_splice_init (&amp;instance-&gt;spare_receivers, &amp;receivers);
-	spin_unlock_irqrestore (&amp;instance-&gt;spare_receivers_lock, flags);
+	spin_unlock_irq (&amp;instance-&gt;spare_receivers_lock);
 
 	list_for_each_safe (pos, n, &amp;receivers) {
 		struct udsl_receiver *rcv = list_entry (pos, struct udsl_receiver, list);
@@ -640,9 +639,9 @@
 
 		if (usb_submit_urb (rcv-&gt;urb) &lt; 0) {
 			dbg ("udsl_fire_receivers: submit failed!");
-			spin_lock_irqsave (&amp;instance-&gt;spare_receivers_lock, flags);
+			spin_lock_irq (&amp;instance-&gt;spare_receivers_lock);
 			list_move (pos, &amp;instance-&gt;spare_receivers);
-			spin_unlock_irqrestore (&amp;instance-&gt;spare_receivers_lock, flags);
+			spin_unlock_irq (&amp;instance-&gt;spare_receivers_lock);
 		}
 	}
 
@@ -785,11 +784,10 @@
 
 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 (&amp;instance-&gt;sndqueue.lock, flags);
+	spin_lock_irq (&amp;instance-&gt;sndqueue.lock);
 	for (skb = instance-&gt;sndqueue.next, n = skb-&gt;next; skb != (struct sk_buff *)&amp;instance-&gt;sndqueue; skb = n, n = skb-&gt;next)
 		if (UDSL_SKB (skb)-&gt;atm_data.vcc == vcc) {
 			dbg ("popping skb 0x%p", skb);
@@ -799,7 +797,7 @@
 			else
 				kfree_skb (skb);
 		}
-	spin_unlock_irqrestore (&amp;instance-&gt;sndqueue.lock, flags);
+	spin_unlock_irq (&amp;instance-&gt;sndqueue.lock);
 
 	tasklet_disable (&amp;instance-&gt;send_tasklet);
 	if ((skb = instance-&gt;current_skb) &amp;&amp; (UDSL_SKB (skb)-&gt;atm_data.vcc == vcc)) {
@@ -1255,7 +1253,6 @@
 {
 	struct udsl_instance_data *instance = ptr;
 	struct list_head *pos;
-	unsigned long flags;
 	unsigned int count = 0;
 	int result, i;
 
@@ -1289,11 +1286,11 @@
 	do {
 		unsigned int completed = 0;
 
-		spin_lock_irqsave (&amp;instance-&gt;completed_receivers_lock, flags);
+		spin_lock_irq (&amp;instance-&gt;completed_receivers_lock);
 		list_for_each (pos, &amp;instance-&gt;completed_receivers)
 			if (++completed &gt; count)
 				panic (__FILE__ ": memory corruption detected at line %d!\n", __LINE__);
-		spin_unlock_irqrestore (&amp;instance-&gt;completed_receivers_lock, flags);
+		spin_unlock_irq (&amp;instance-&gt;completed_receivers_lock);
 
 		dbg ("udsl_usb_disconnect: found %u completed receivers", completed);
 
@@ -1329,11 +1326,11 @@
 	/* wait for completion handlers to finish */
 	do {
 		count = 0;
-		spin_lock_irqsave (&amp;instance-&gt;send_lock, flags);
+		spin_lock_irq (&amp;instance-&gt;send_lock);
 		list_for_each (pos, &amp;instance-&gt;spare_senders)
 			if (++count &gt; UDSL_NUM_SND_URBS)
 				panic (__FILE__ ": memory corruption detected at line %d!\n", __LINE__);
-		spin_unlock_irqrestore (&amp;instance-&gt;send_lock, flags);
+		spin_unlock_irq (&amp;instance-&gt;send_lock);
 
 		dbg ("udsl_usb_disconnect: found %u spare senders", count);
 
</pre></body></html>