On Sun, Dec 28, 2008 at 11:41 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Sun, 28 Dec 2008, Erik Ekman wrote: > >> > Please attach to the bug report some usbmon traces showing what happens >> > when you try to use the fingerprint reader more than once: one trace >> > with this commit present and one with the commit dropped. Instructions >> > for usbmon are in the kernel source file Documentation/usb/usbmon.txt. >> > >> > Alan Stern >> > [..] > > In short, the "vanilla" log shows the second program run stopping short > for no apparent reason. There is no evident connection with the commit > you identified. > It may be that thinkfinger and fprint uses usbfs in some bad way which by luck has worked so far. I have not looked at the code, nor do I know the usbfs details. The tftool complains with ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/) Copyright (C) 2006, 2007 Timo Hoenig <thoenig@xxxxxxx> Initializing...Could not claim USB device. which seem related to the dmesg errors I saw. Full strace of a failed tf-tool run below. /Erik execve("/usr/sbin/tf-tool", ["/usr/sbin/tf-tool", "--acquire"], [/* 14 vars */]) = 0 brk(0) = 0x9152000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=76897, ...}) = 0 mmap2(NULL, 76897, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f9e000 close(3) = 0 open("/usr/lib/libthinkfinger.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\f\0\0004\0\0\0\270"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=15008, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9d000 mmap2(NULL, 17920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f98000 mmap2(0xb7f9b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xb7f9b000 close(3) = 0 open("/lib/libusb-0.1.so.4", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\23\0\0004\0\0\0\220"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=31056, ...}) = 0 mmap2(NULL, 34040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f8f000 mmap2(0xb7f95000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5) = 0xb7f95000 close(3) = 0 open("/lib/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0PG\0\0004\0\0\0\240"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=80072, ...}) = 0 mmap2(NULL, 90592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f78000 mmap2(0xb7f8b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0xb7f8b000 mmap2(0xb7f8d000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f8d000 close(3) = 0 open("/lib/libpam.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\32\0\0004\0\0\0\274"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=42444, ...}) = 0 mmap2(NULL, 45304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f6c000 mmap2(0xb7f76000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9) = 0xb7f76000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@a\1\0004\0\0\0\24"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1200228, ...}) = 0 mmap2(NULL, 1205712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e45000 mmap2(0xb7f66000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x121) = 0xb7f66000 mmap2(0xb7f69000, 9680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f69000 close(3) = 0 open("/lib/libdl.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\n\0\0004\0\0\0,"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=9612, ...}) = 0 mmap2(NULL, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e41000 mmap2(0xb7e43000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7e43000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e40000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e3f000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e3f6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0xb7e43000, 4096, PROT_READ) = 0 mprotect(0xb7f66000, 8192, PROT_READ) = 0 mprotect(0xb7f76000, 4096, PROT_READ) = 0 mprotect(0xb7f8b000, 4096, PROT_READ) = 0 mprotect(0xb7f95000, 4096, PROT_READ) = 0 mprotect(0xb7f9b000, 4096, PROT_READ) = 0 mprotect(0x804a000, 4096, PROT_READ) = 0 mprotect(0xb7fca000, 4096, PROT_READ) = 0 munmap(0xb7f9e000, 76897) = 0 set_tid_address(0xb7e3f708) = 10012 set_robust_list(0xb7e3f710, 0xc) = 0 rt_sigaction(SIGRTMIN, {0xb7f7c2b0, [], SA_SIGINFO}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb7f7c350, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 uname({sys="Linux", node="ki-moon", ...}) = 0 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fb0000 write(1, "\n"..., 1) = 1 write(1, "ThinkFinger 0.3 (http://thinkfing"..., 54) = 54 write(1, "Copyright (C) 2006, 2007 Timo Hoe"..., 55) = 55 write(1, "\n"..., 1) = 1 write(1, "Initializing..."..., 15) = 15 brk(0) = 0x9152000 brk(0x9173000) = 0x9173000 open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 7 entries */, 4096) = 112 close(3) = 0 open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 7 entries */, 4096) = 112 getdents(3, /* 0 entries */, 4096) = 0 close(3) = 0 open("/dev/bus/usb/002", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 3 entries */, 4096) = 48 open("/dev/bus/usb/002/001", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\20\1\t\0\0@k\35\1\0\6\2\3\2\1\1"..., 18) = 18 read(4, "\t\2\31\0\1\1\0\340"..., 8) = 8 read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\2\0\377"..., 17) = 17 close(4) = 0 getdents(3, /* 0 entries */, 4096) = 0 close(3) = 0 open("/dev/bus/usb/002/001", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = 3 close(3) = 0 open("/dev/bus/usb/001", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 3 entries */, 4096) = 48 open("/dev/bus/usb/001/001", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\0\2\t\0\0@k\35\2\0\6\2\3\2\1\1"..., 18) = 18 read(4, "\t\2\31\0\1\1\0\340"..., 8) = 8 read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\4\0\f"..., 17) = 17 close(4) = 0 getdents(3, /* 0 entries */, 4096) = 0 close(3) = 0 open("/dev/bus/usb/001/001", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = 9 close(3) = 0 open("/dev/bus/usb/005", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=100, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 5 entries */, 4096) = 80 open("/dev/bus/usb/005/003", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\0\1\0\0\0\10\203\4\26 \1\0\1\2\0\1"..., 18) = 18 read(4, "\t\2'\0\1\1\0\240"..., 8) = 8 read(4, "2\t\4\0\0\3\377\0\0\0\7\5\201\2@\0\0\7\5\2\2@\0\0\7\5\203\3\4\0\24"..., 31) = 31 close(4) = 0 open("/dev/bus/usb/005/002", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\0\2\340\1\1@\\\n\20!\0\1\1\2\0\1"..., 18) = 18 read(4, "\t\2\330\0\4\1\0\340"..., 8) = 8 read(4, "\0\t\4\0\0\3\340\1\1\0\7\5\201\3\20\0\1\7\5\202\2@\0\1\7\5\2\2@\0\1\t\4"..., 208) = 208 close(4) = 0 open("/dev/bus/usb/005/001", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\20\1\t\0\0@k\35\1\0\6\2\3\2\1\1"..., 18) = 18 read(4, "\t\2\31\0\1\1\0\340"..., 8) = 8 read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\2\0\377"..., 17) = 17 close(4) = 0 getdents(3, /* 0 entries */, 4096) = 0 close(3) = 0 open("/dev/bus/usb/005/003", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 open("/dev/bus/usb/005/002", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 open("/dev/bus/usb/005/001", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = 3 close(3) = 0 open("/dev/bus/usb/004", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 3 entries */, 4096) = 48 open("/dev/bus/usb/004/001", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\20\1\t\0\0@k\35\1\0\6\2\3\2\1\1"..., 18) = 18 read(4, "\t\2\31\0\1\1\0\340"..., 8) = 8 read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\2\0\377"..., 17) = 17 close(4) = 0 getdents(3, /* 0 entries */, 4096) = 0 close(3) = 0 open("/dev/bus/usb/004/001", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = 3 close(3) = 0 open("/dev/bus/usb/003", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 3 entries */, 4096) = 48 open("/dev/bus/usb/003/001", O_RDWR) = 4 ioctl(4, USBDEVFS_CONNECTINFO, 0xbfac87c4) = 0 read(4, "\22\1\20\1\t\0\0@k\35\1\0\6\2\3\2\1\1"..., 18) = 18 read(4, "\t\2\31\0\1\1\0\340"..., 8) = 8 read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\2\0\377"..., 17) = 17 close(4) = 0 getdents(3, /* 0 entries */, 4096) = 0 close(3) = 0 open("/dev/bus/usb/003/001", O_RDWR) = 3 ioctl(3, USBDEVFS_IOCTL, 0xbfac87c0) = 3 close(3) = 0 open("/dev/bus/usb/005/003", O_RDWR) = 3 ioctl(3, USBDEVFS_CLAIMINTERFACE, 0xbfac8834) = -1 EBUSY (Device or resource busy) write(1, "Could not claim USB device.\n"..., 28) = 28 exit_group(-1) = ? -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html