Am Dienstag, 12. November 2002 23:31 schrieb Randy.Dunlap:
> On Tue, 12 Nov 2002, Oliver Neukum wrote:
> | Hi,
> |
> | this fixes an oops upon using an unplugged scanner.
> | Greg could you get this into 2.4.20 ? It's a clear fix for
> | a single driver.
>
> missing patch ??
Yes. OK. I should get more sleep.
Here it is.
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-11-12 23:30:49+01:00, [EMAIL PROTECTED]
- use of unplugged scanner oops fix
hpusbscsi.c | 23 +++++++++++++++--------
hpusbscsi.h | 1 +
2 files changed, 16 insertions(+), 8 deletions(-)
diff -Nru a/drivers/usb/hpusbscsi.c b/drivers/usb/hpusbscsi.c
--- a/drivers/usb/hpusbscsi.c Tue Nov 12 23:31:31 2002
+++ b/drivers/usb/hpusbscsi.c Tue Nov 12 23:31:31 2002
@@ -125,6 +125,7 @@
new->dev = dev;
init_waitqueue_head (&new->pending);
init_waitqueue_head (&new->deathrow);
+ init_MUTEX(&new->lock);
INIT_LIST_HEAD (&new->lh);
@@ -202,12 +203,12 @@
{
struct hpusbscsi *hp = (struct hpusbscsi *)ptr;
+ down(&hp->lock);
usb_unlink_urb(&hp->controlurb);
usb_unlink_urb(&hp->dataurb);
- spin_lock_irq(&io_request_lock);
hp->dev = NULL;
- spin_unlock_irq(&io_request_lock);
+ up(&hp->lock);
}
static struct usb_device_id hpusbscsi_usb_ids[] = {
@@ -347,6 +348,15 @@
if ( srb->device->lun || srb->device->id || srb->device->channel ) {
srb->result = DID_BAD_TARGET;
callback(srb);
+ goto out_nolock;
+ }
+
+ /* to prevent a race with removal */
+ down(&hpusbscsi->lock);
+
+ if (hpusbscsi->dev == NULL) {
+ srb->result = DID_ERROR;
+ callback(srb);
goto out;
}
@@ -400,12 +410,7 @@
);
hpusbscsi->scallback = callback;
hpusbscsi->srb = srb;
-
- if (hpusbscsi->dev == NULL) {
- srb->result = DID_ERROR;
- callback(srb);
- goto out;
- }
+
res = usb_submit_urb(&hpusbscsi->dataurb);
if (res) {
@@ -417,6 +422,8 @@
}
out:
+ up(&hpusbscsi->lock);
+out_nolock:
spin_lock_irq(&io_request_lock);
return 0;
}
diff -Nru a/drivers/usb/hpusbscsi.h b/drivers/usb/hpusbscsi.h
--- a/drivers/usb/hpusbscsi.h Tue Nov 12 23:31:31 2002
+++ b/drivers/usb/hpusbscsi.h Tue Nov 12 23:31:31 2002
@@ -29,6 +29,7 @@
u8 sense_command[SENSE_COMMAND_SIZE];
int use_count;
+ struct semaphore lock;
wait_queue_head_t pending;
wait_queue_head_t deathrow;
===================================================================
This BitKeeper patch contains the following changesets:
1.811
## Wrapped with gzip_uu ##
begin 664 bkpatch9810
M'XL(`$.!T3T``\U6VV[;1A!]YG[%``$")P')O?&R"F0HB8Q6B-L8:@T4:`J#
MY*Y$0A27X$5.4?;?NZ02V8YEU5;]4$(0)<YR=LXY<X9\`9>UJD:6SK.-JM`+
M^%'7C?FK"ETH)]5KE6=%^\71U=($YUJ;H-M?=K=WN/'*;BJE:K>M8YLZ')EE
M%U&3I&"B]<@B#MM=:?XLU<B:G_UP>?YNCM!X#!_2J%BJ7U0#XS&*5Q/9JMQ9
M53I*^QV[7;BC&!/L84(9]S'M<(")U_F!C`+.L/`\+HDB2$:;3-KQI(R26.6Y
M4Y@[[^2@A)`^%>=>Y_'0#]`4B!,2`IBZA+B$`F4CAD=<O,%DA#%L84[V$0)O
M&-@8O8?_7O@'E(`-;:U`+Z`MRKQ=+I6$.HF*0E6@=5G#(ON"/H(7,$K1Q0US
MR'[B@1".,#J%LM=D(E6]NE6XK'[EMAIL PROTECTED])QE@$(P#<_:HW]$@$+B3
M@9*AE#R4<1`KGQTBZU#F015S",H[SGPJ3'7W.7V?-1^5*DW/J29QLV6A*W6/
M7D$)ZSS!%DP:GE0B,.;QP;H>2GN[*"\43#R-LO0>90(S`X^K@"Y(8/*&$9;\
M",K2>]5A$N#!3ONP['?6\62BH\C$PA3,F&GYSO,]L?4=87=L1\6(\L?8CCRG
M[=Y):9RVG^H:&@U-JN`KE7E6-[T'AW;X!'9U/7R,IR[V<G^$-V<B!#/(]I<S
MB/R`D7J=G]_21NUT4IO!Y$CU^[)2RS_^Q<A&:G.PH&.^9[JREYGB(V7VP`Z?
M<;RN]49!5$B(I(1<)ZNL6/8")ZE*5K#0%53*K(ER(_%V#'TG\0/(CU&9T,#(
M;&5%UES]=/GKV6\G+PMU;9_V9;UZBV84\SXN]75Q\C(M=X$IQ7U_3"G!YC3;
MGJRVO+-HQK@`@2QKJ0T\W397A>Y#;Y'U-_J,+/=U#[NLU$85#41018F"ZZQ)
MOQ$`K]V;O;_BW&4W";(%G-P*2+4QW0<_7YZ?OX*_S+YU%=NGE:K;W#S883J;
M7IW-YY_F9G\KB?(\CI+5B5G3X^&8@8]F?(#UV?P@`N@W1-]O?0-E=,`*Z1.M
M\,A1C?KVGVR3)7I]<#IC9B8S(R$+.QX(GPX^\/\'T\X>FC^"6JVC,NU'E!EG
MP_/C4;V>'M/KC/0]6C=5FS0W&\.V(W<OAX,+ZW8]]CU.L!`A^@<+LUB@G`H`
!````
`
end
-------------------------------------------------------
This sf.net email is sponsored by: Are you worried about
your web server security? Click here for a FREE Thawte
Apache SSL Guide and answer your Apache SSL security
needs: http://www.gothawte.com/rd523.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel