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

Reply via email to