多个被arch_initcall修饰的函数有没有一定顺序?还是按照link的先后来随机排列的?
我在2.6.35.4原始的mini2440 kernel里发现一个问题:
arch_initcall(customize_machine);
arch_initcall(s3c_arch_init);
如果第一个先调用,就会发生chip->config->set_pull这个函数指针没有初始化赋值,是个0指针。
而chip->config->set_pull初始化在s3c_arch_init函数里调用s3c2440_init来初始化的,
复制代码- s3c24xx_gpiocfg_default.set_pull = s3c_gpio_setpull_1up;
- s3c24xx_gpiocfg_default.get_pull = s3c_gpio_getpull_1up;
|