Any USB device. open the /proc/bus/usb/... device, poll on it for changes, unplug the device manual. The poll call does return the right values, but only when it times out. Poll calls without a timeout seem to return never.
Do you have a small userspace program that I can use to test this? Also, does the same thing happen on 2.4?
Created attachment 469 [details] test app. call with /proc/bus/usb/.... filename (maybe in an strace), remove device, poll does not return. same problem with 2.4.20 stock and 2.5.73
Does this problem still exist in 2.6.9/2.6.10-rc*?
2.6.10-rc1: still the same problem. shall I try rc2?
I don't think there will be any change in rc2, to be honest. I will take a look at this problem today.
Created attachment 4248 [details] patch to signal waitqueues in usbfs that file is being removed. Please try the attached patch, which should fix the bug. We were not properly waking up the waitqueues that may have been watching the usbfs files.
the patch fixes the issue. thanks!