Messages in this thread | | | Date | Thu, 6 Mar 2008 12:31:21 -0000 (UTC) | Subject | Re: Behaviour of device_register | From | "Adrian McMenamin" <> |
| |
On Wed, March 5, 2008 11:46 pm, Greg KH wrote: > On Wed, Mar 05, 2008 at 11:25:48PM +0000, Adrian McMenamin wrote: >> The observed behaviour for me is that it appears to be blocking the >> vblank interrupt on my box (or more accurately stopping the workqueue >> that the interrupt handler calls from running). And without the vblank >> my bus won't process dma and so therefore the attempt to register the >> device in question fails. >> >> But I can see no reason from a glance over the code why that (vblanks >> being blocked) would be the case - have I missed something and the >> vblanks will be blocked, or should I be looking elsewhere for the root >> cause of this problem? > > device_register(), on it's own, does not touch any hardware, nor prevent > anything else in the kernel from happening. > > So I think you need to look elsewhere, like into the bus that is doing > the device_register() call :) >
It turns out this is a lock contention issue.
The code blocks waiting for a lock that will never be freed.
| |