Hi,

I'm using linux 2.4.14 with a UMAX 2200 USB scanner. When I do a "modprobe
scanner" and "rmmod scanner", the rmmod process get stuck forever.
The problem comes from disconnect_scanner(). It does a
  down (&(scn->sem));
then calls usb_unlink_urb().
For some reason an interrupt is generated during that moment, so
irq_scanner() is called. irq_scanner() also does a
  down (&(scn->sem));

==> problem.

I think the  down (&(scn->sem)); / up (&(scn->sem)); in
disconnect_scanner() is unnecessary because the module cannot be removed
if a process is using it, so that function will not be called. Removing
them solves my problem.



Also in probe_scanner(), there is a couple  up(&scn_mutex); missing before
the next 2 return NULL;



T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc= 11/900 us ( 1%), #Int=  1, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI Root Hub
S:  SerialNumber=ef80
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1606 ProdID=0230 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=usbscanner
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=   1 Ivl=  1ms


00:1f.2 USB Controller: Intel Corporation 82801AA USB (rev 02) (prog-if 00
[UHCI])
        Subsystem: Intel Corporation 82801AA USB
        Flags: bus master, medium devsel, latency 0, IRQ 9
        I/O ports at ef80 [size=32]


Frank.


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to