Hi,
irqsave spinlocks in an interrupt handler are superfluous.
Simple spinlocks are sufficient and quicker. As this is in
interrupt context, every cycle counts.
Regards
Oliver
You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.
===================================================================
[EMAIL PROTECTED], 2002-12-18 12:34:22+01:00, [EMAIL PROTECTED]
- simple spinlocks in interrupt
speedtouch.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff -Nru a/drivers/usb/misc/speedtouch.c b/drivers/usb/misc/speedtouch.c
--- a/drivers/usb/misc/speedtouch.c Wed Dec 18 12:35:04 2002
+++ b/drivers/usb/misc/speedtouch.c Wed Dec 18 12:35:04 2002
@@ -582,7 +582,6 @@
struct udsl_usb_send_data_context *ctx = (struct udsl_usb_send_data_context *)
urb->context;
struct udsl_instance_data *instance = ctx->instance;
int err;
- unsigned long flags;
PDEBUG ("udsl_usb_send_data_completion (vcc = %p, skb = %p, status %d)\n",
ctx->vcc,
ctx->skb, urb->status);
@@ -590,15 +589,15 @@
ctx->vcc->pop (ctx->vcc, ctx->skb);
ctx->skb = NULL;
- spin_lock_irqsave (&instance->sndqlock, flags);
+ spin_lock (&instance->sndqlock);
if (skb_queue_empty (&instance->sndqueue)) {
- spin_unlock_irqrestore (&instance->sndqlock, flags);
+ spin_unlock (&instance->sndqlock);
return;
}
/* submit next skb */
ctx->skb = skb_dequeue (&(instance->sndqueue));
ctx->vcc = ((struct udsl_cb *) (ctx->skb->cb))->vcc;
- spin_unlock_irqrestore (&instance->sndqlock, flags);
+ spin_unlock (&instance->sndqlock);
usb_fill_bulk_urb (urb,
instance->usb_dev,
usb_sndbulkpipe (instance->usb_dev, UDSL_ENDPOINT_DATA_OUT),
===================================================================
This BitKeeper patch contains the following changesets:
1.1119
## Wrapped with gzip_uu ##
begin 664 bkpatch3425
M'XL(`&A=`#X``[U4:XO4,!3]//D5%Q9$63K-39I.6^DRNBLJ"@XC^UGZR+1E
M9IJ:M*Y"?[S)%$=$*>,#RX73WE?.O3GT"NZ-U,E"'9I/4I,K>*5,;S]EJUJY
MK-51'IIV^+Q4NK+!K5(VZ#NW/U7X^=[KM93&KS03Q.9LLKZHP89,LL`E/WOZ
M+YU,%ML7+^_?/ML2DJ9P6V=M)=_+'M*4Y/MU.<C#<J]55KOCQG-X9)0B(A.4
MBQ#%R"+.@Q%#FI?VM62K>)>',9D(K7]%_<=>#!FN,.0!B\9`Q"(@=X!+>T(,
ME/EH+0)D"0\2QJXI)I3"3&^X1O`H>0Y_/\$M*<`#TQR[@P33->U!%7L#36NM
MEUH/74_>@*7,!=E\7Q_Q?O,AA&:4W$"E9;6>Z!;J.);:#6G\P>3^L3&%;SHI
MRUX-A8V?%D<CMG)H%T<#L0I'QW^'<1`'44Q%N9M;U`7][<5$B/9B<.1,A/PD
MD]DR)YU_/\:LEBX:XYN^>"PB-NDK^$E=>(FZ.'C!?U37M/=WX.F'DUFU;.:O
MX`_D=R<B`6@AYA9>3[!PG#XX4O#X4=.:/FL+Z=V8MOSHG$^>NGPQY3M83`5#
C.UL24G0E$UQ2<?YA%;6T^QF.Z0XC$18B)%\!^ZJ-+2T%````
`
end
-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility
Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel