Re: recursively unregistering platform devices

From: Greg KH
Date: Wed Feb 16 2005 - 19:34:12 EST


On Sun, Feb 06, 2005 at 03:29:12PM +0100, Robert Schwebel wrote:
> Hi,
>
> I have a locking problem with platform devices in a little bit unusual
> scenario; we have an FPGA which has a device information memory block
> for the several "parts" in the FPGA. So we have written a base driver
> which registers the device information block with the driver model, then
> looks what is in the FPGA, registers the according "devices" with the
> driver model and issues hotplug events to load the related drivers.
>
> The registration works fine, although we call platform_add_devices()
> from the base driver for all the "sub devices"; but when we try to
> unload the drivers there is a deadlock. On driver exit we call
> platform_device_unregister() for the base driver which seems to be run
> under a lock which is also being aquired when unregistering the devices
> "inside" the FPGA.
>
> Before I investigate deeper - did anyone see this behaviour before?

Known issue, you can't recursivly register or unregister with the driver
core right now. I'm working on fixing this issue.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/