Обычно встречающиеся проблемы заключаются в том, что где-то в системе есть какая-то ссылка на модуль в полете.Это может быть что угодно, от удержания блокировки, какого-то обратного вызова в полете - другого модуля, использующего символ, и т. Д. И т. Д.убедившись, что этого никогда не произойдет.Вещи, которые будут использовать ваш модуль - или аспекты вашего модуля - будут содержать постоянные ссылки.Ядро будет препятствовать тому, чтобы ваша форма выполняла «rmmod», когда это число отлично от нуля.Вы можете увидеть счетчик ссылок всех загруженных модулей в выводе "lsmod".
Изучите их и используйте их с умом.
Эти проблемы на самом деле не относятся к "SMP" - но любыемодуль ядра.Например, если ваш модуль был символьным драйвером, и кто-то открыл ваше устройство, вы бы не хотели, чтобы ваш драйвер выгружался, когда у кого-то был открыт файловый дескриптор - или, что еще хуже, произошел процесс, блокирующий чтение ()в ожидании ответа.Во многих случаях - как это - ядро само будет содержать ссылки для вас.В этом случае процесс, открывающий драйвер, будет содержать ссылку на модуль драйвера.