LINUX: порядок загрузки статически связанного модуля - PullRequest
12 голосов
/ 15 апреля 2011

Если у меня два статически связанных модуля. Функция module_init одного модуля зависит от того, что функция module_init другого модуля уже запущена.Есть ли способ заставить один модуль загружаться раньше другого?

Кроме того, гарантированно ли завершается функция init первого модуля до вызова второго?

Наконец, если ответ на вышеприведенный ответ НЕТ, каков рекомендуемый способ синхронизации двухмодуль init вызывает, чтобы убедиться, что у меня нет проблем?

Ответы [ 2 ]

13 голосов
/ 15 апреля 2011

Есть ли способ заставить один модуль загружаться раньше другого?

Ответ удивительно прост, убедитесь, что первый модуль находится первым в Makefile:

obj-y += mod1.o
obj-y += mod2.o

является ли функция инициализации первого модуля гарантированно завершенной до вызова второго?

Да, initcalls (module_init hook) в вашем случае называются по одному.См. init/main.c, do_one_initcall() звонящие.

0 голосов
/ 15 апреля 2011

Я предполагаю, что вы хотите исправить фиаско статической инициализации

Посмотрите на

Статический порядок инициализации Fiasco

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...