Re: strange probe order issue after platform_add_devices()

From: hufey
Date: Wed Aug 22 2007 - 12:27:24 EST


Seems never reach to the list...

On 8/18/07, hufey <hufeyy@xxxxxxxxx> wrote:
> Hi list,
>
> I am facing a very strange issue about device probe order.
> I have a piece of code to support network interface card for an embedded box.
>
> It likes following:
>
> ...
> static struct platform_device *custom_devices[] __initdata = {
> &a_device,
> &b_device,
> &c_device,
> };
>
> static int __init device_init()
> {
> return platform_add_devices(custom_devices,
> ARRAY_SIZE(custom_devices);
> }
>
> subsys_initcall(device_init);
>
> /* end */
>
> This code works good with kernel 2.6.11. After platform_add_devices()
> is executed, a_device's probe function will be called first then
> b_device's probe function be called.
> I merged it to 2.6.17, but strange thing is b_device's probe be called
> first always now.
> Since b_device probe depends on a_device, so it always fails now.
>
> Does anyone know how to fix it? Or give me the hint about how kernel
> decide which device be called to probe in order by what mechanism?
>
> Thanks in advance and best regards,
> hufeyy
>
-
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/