Проблема с назначением прерывания
ОС ubuntu 10.10, версия ядра 2.6.35, сетевая карта realtek 8139.
При вызове функции pci_enable_device(...) устройству назначается прерывание 16. Это видно по логам, которые смотрю в /var/log/messages. Проблема в том, что на этом прерывании уже сидит устройство nouveau - видно из /proc/interrupts, судя по всему, это видеокарта. Смотрел, как это делается в оригинальном драйвере для этой карты: используя флаг IRQF_SHARED в функции request_irq(...), карта сажается на 16 прерывание вместе с вышеупомянутым устройством nouveau. Пробовал сделать то же самое - загрузил модуль, команда sudo ifconfig rtl8139 up выполнилась хорошо, а после выгрузки модуля, система упала.
Вопрос 1. Можно ли вручную узнать номер свободной линии прерываний и установить ее для моего устройства, чтобы не было разделяемого прерывания.
Вопрос 2. Как в принципе оригинальный драйвер, который разделяет прерывание 16 с устройством nouveau, может работать корректно.
Буду рад разъяснениям и ссылкам на толковую литературу.