Hi, this is a real one. Fix included.
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-07-12 00:15:43+02:00, [EMAIL PROTECTED] - missing unlock_kernel diff -Nru a/drivers/usb/media/pwc-if.c b/drivers/usb/media/pwc-if.c --- a/drivers/usb/media/pwc-if.c Fri Jul 12 00:16:07 2002 +++ b/drivers/usb/media/pwc-if.c Fri Jul 12 00:16:07 2002 @@ -1756,40 +1756,40 @@ pdev = (struct pwc_device *)ptr; if (pdev == NULL) { Err("pwc_disconnect() Called without private pointer.\n"); - return; + goto out_err; } if (pdev->udev == NULL) { Err("pwc_disconnect() already called for %p\n", pdev); - return; + goto out_err; } if (pdev->udev != udev) { Err("pwc_disconnect() Woops: pointer mismatch udev/pdev.\n"); - return; + goto out_err; } #ifdef PWC_MAGIC if (pdev->magic != PWC_MAGIC) { Err("pwc_disconnect() Magic number failed. Consult your scrolls and try again.\n"); - return; + goto out_err; } -#endif - +#endif + pdev->unplugged = 1; if (pdev->vdev != NULL) { - video_unregister_device(pdev->vdev); + video_unregister_device(pdev->vdev); if (pdev->vopen) { Info("Disconnected while device/video is open!\n"); - + /* Wake up any processes that might be waiting for a frame, let them return an error condition */ wake_up(&pdev->frameq); - + /* Wait until we get a 'go' from _close(). This used to have a gigantic race condition, since we kfree() - stuff here, but we have to wait until close() - is finished. + stuff here, but we have to wait until close() + is finished. */ - + Trace(TRACE_PROBE, "Sleeping on remove_ok.\n"); add_wait_queue(&pdev->remove_ok, &wait); set_current_state(TASK_UNINTERRUPTIBLE); @@ -1815,6 +1815,7 @@ device_hint[hint].pdev = NULL; pdev->udev = NULL; +out_err: unlock_kernel(); kfree(pdev); } =================================================================== This BitKeeper patch contains the following changesets: 1.670 ## Wrapped with gzip_uu ## begin 664 bkpatch4851 M'XL(`*<#+CT``[U4[VN<0!#][/X5`_F2D*J[Z[G^*!?2)J4M+32DY%O@T'4\ ME_/<X.I="_[QW5-)"%Q3FD)%?.L\Y^V;V<$3N#/8IHZNU0Y;<@*?M.GL*S:Z M0:_26ZQ5T__P=+NVY*W6EO0/87_*\/.-V[6(QM_SD-A/;K).5F`9DSK,"QXC MW<\'3)W;#Q_OOKZ[)62YA*LJ:];X'3M8+DF^N2QZK+U-J[/JL-OP2`^<4L88 M#VD0"A8./`Z"Q<`$S0N[+'B4E+E(R.3G\ICSYUJ<1E:-TY`'@Z`19>0:F"<B M"I3[-/(9!TI3%J:+X)SRE%)X01K.&;B4O(=_+^"*2'!AJXQ1S1KZIM9RL]I@ MVV!-OH#@-!'DYJEKQ/W+BQ":47)QQ&G1'NHS?F]R_V$O755Z\LGT@B8L&CA+ M(C9DDD>1C&4N,1""R9=:\TQVBX7*GHG/Q\#"13!0'L3).!2_SSD^):^W3M8M MKB\G):FW?W0K6$1#%C`ZB)#1Q3@TG+]R9@)P&?\/4S/V]1NX[7Z\[1#<O-#B M5XS4-8O"!!CY/*/CK'6G0??="MOV[8$7P<2/>(R/9CXZSD=\XD<\QB^`CWQH M\02;0I7D?B3B.3$>$W>J0+WJ&WOLRG38K@K<*8FG#Q;=BYU]GHUZ,9O21AR% M8C%'Q&,DF?9,J$7'<0#`='U90H4MOH&\[V"/4&4[!.MVGZG.'DVG:I"U-GAZ M-N<H`Z5JE*FP\`ZRR5SJB/=V%;-#4^9JTZ?_JZQ0;DR_708B+N.PH.07")[A %.,D%```` ` end ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek PC Mods, Computing goodies, cases & more http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel