Подтвердить что ты не робот

LINUX: порядок загрузки статически связанного модуля

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

Посмотрите

Статический заказ инициализации Fiasco