Ludovic Rousseau wrote:
Le Sunday 11 April 2004 � 15:51:39, John McBride a �crit:


Next I tried the ccid-0.4.1 tarball from alioth and although it makes a proper Info.plist it also kills my usb with a segfault when it shuts down:


That's a bug. It is not clear if the bug is in pcsc-lite (1.2.0) or in
the ccid driver (0.4.1).


Can you try to run pcscd inside gdb? Just do: $ gdb pcscd (gdb) set args -f (gdb) run

after the crash do:
(gdb) bt


...
readerfactory.c:1441 RFUninitializeReader: Attempting shutdown of SCR 331 0 0.
readerfactory.c:1263 RFUnloadReader: Unloading reader driver.
dyn_unix.c:50 DYN_CloseLibrary: dlerror() reports /usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so.0.4.1: shared object not open


Program received signal SIGSEGV, Segmentation fault.
0x0804f72e in RFRemoveReader (lpcReader=0xbfeabcd0 "SCR 331", dwPort=2097152)
at readerfactory.c:505
505 if (*sContext->dwMutex == 1)


(gdb) bt
#0  0x0804f72e in RFRemoveReader (lpcReader=0xbfeabcd0 "SCR 331",
    dwPort=2097152) at readerfactory.c:505
#1  0x08050a0c in RFCleanupReaders (shouldExit=1) at readerfactory.c:1697
#2  0x0804c16b in SVCServiceRunLoop () at pcscdaemon.c:189
#3  0x0804c559 in main (argc=2, argv=0xbfeac774) at pcscdaemon.c:460

(gdb) p *sContext
$1 = {lpcReader = "SCR 331 0 0", '\0' <repeats 38 times>,
lpcLibrary = "/usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so.0.4.1", '\0' <repeats 28 times>, pthThread = 0, mMutex = 0x0,
psCapabilites = {dwAsynch_Supported = 0, dwDefault_Clock = 0,
dwMax_Clock = 0, dwDefault_Data_Rate = 0, dwMax_Data_Rate = 0,
dwMax_IFSD = 0, dwSynch_Supported = 0, dwPower_Mgmt = 0,
dwCard_Auth_Devices = 0, dwUser_Auth_Device = 0,
dwMechanics_Supported = 0, dwVendor_Features = 0}, psProtOptions = {
dwProtocol_Type = 0, dwCurrent_Clock = 0, dwCurrent_F = 0,
dwCurrent_D = 0, dwCurrent_N = 0, dwCurrent_W = 0, dwCurrent_IFSC = 0,
dwCurrent_IFSD = 0, dwCurrent_BWT = 0, dwCurrent_CWT = 0,
dwCurrent_EBC = 0}, psHandles = {{hCard = 0,
dwEventStatus = 0} <repeats 16 times>}, psFunctions = {
pvfCreateChannel = 0x0, pvfCloseChannel = 0x0, pvfGetCapabilities = 0x0,
pvfSetCapabilities = 0x0, pvfSetProtocol = 0x0, pvfPowerICC = 0x0,
pvfSwallowICC = 0x0, pvfEjectICC = 0x0, pvfConfiscateICC = 0x0,
pvfTransmitICC = 0x0, pvfICCPresent = 0x0, pvfICCAbsent = 0x0,
pvfControl = 0xc150ec}, ucAtr = '\0' <repeats 32 times>, dwAtrLen = 0,
vHandle = 0x0, dwVersion = 0, dwPort = 0, dwProtocol = 0, dwSlot = 0,
dwBlockStatus = 0, dwStatus = 0, dwLockId = 0, dwIdentity = 0,
dwContexts = 0, dwPublicID = 0, dwFeeds = 0x0, dwMutex = 0x0}


(gdb) p *sContext->dwMutex
Cannot access memory at address 0x0


(now lsusb has no entry for my reader)


You don't see the reader again even if you unplug and replug it?
Do you see an error message with 'dmesg'?


You are right, I can get it back by unplugging and replugging:


Before the crash:
$ /sbin/lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 002: ID 04e6:e001 SCM Microsystems, Inc.

After the crash:
$ /sbin/lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Remove and replug:
$ /sbin/lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 003: ID 04e6:e001 SCM Microsystems, Inc.

It sounds like the floppy drive resets when this happens.

dmesg shows:
usb.c: USB disconnect on device 00:07.2-1 address 2

Regards,
John

_______________________________________________
Muscle mailing list
[EMAIL PROTECTED]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to