[quoted lines by Alan Stern on 2015/02/11 at 15:22 -0500] >Well, it's a mystery. There are exactly two places in the usbfs code >where a signal is sent: async_completed() and usbdev_remove(). As you >can tell from the usbfs_snoop output, async_completed() doesn't get >called until the URB completes. (And usbdev_remove() gets called only >when the device is disconnected I just checked the snoop log again and can verify that the word remove is nowhere in it. >besides which, the values you got for si_errno and si_addr were different from >what usbdev_remove() uses.) The struct signalfd_siginfo has all zeros (NULL) for si_addr. Only these fields have something in them: si_signo=SIGRTMIN (correct), si_errno=-ENOENT, si_code=SI_ASYNCIO, si_pid, si_int, si_ptr. I'm using 64-bits so si_ptr is bigger than si_int, but the low-order four bytes of si_ptr are the same as what's in si_int. I suspect both are left over junk from somewhere else. As an aside: Perhaps usbfs could zero out the whole struct first so that we can be sure of what it considered to be meaningful. >You don't have any leftover debugging code in brltty that sends a >signal mimicking the effect of an URB completion, do you? No, there's none of that kind of stuff in there. -- Dave Mielke | 2213 Fox Crescent | The Bible is the very Word of God. Phone: 1-613-726-0014 | Ottawa, Ontario | http://Mielke.cc/bible/ EMail: dave@xxxxxxxxx | Canada K2A 1H7 | http://FamilyRadio.com/ -- 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