recursive call to platform_device_register deadlocks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




We wrote soc_device to handle ASICs that were structured as a number of subcomponents, some of which are reused from ASIC to ASIC. This enables the drivers for the subcomponents to be in separate files, loaded as modules, and enhances code reuse. We submitted soc_device, but it was pointed out that platform_device probably does what we want.

We've started working on replacing uses of soc_device in handhelds drivers by platform_device. One of the things we ran into is that the platform_device driver for an ASIC was calling soc_device_register inside its probe function. If this is converted to platform_device_register, then the process deadlocks because bus_add_device locks platform_bus_type.

We could restructure the toplevel driver so that it does not call platform_device inside its probe function. An alternative would be to add a pointer to a vector of subdevices to platform_device and have it register the subdevices after it has probed the toplevel device. Do you have any recommendations?

Thanks,
Jamey Hicks

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux