Здравствуйте!
Вопрос не связан с конкретным дистрибутивом, а только с ядром.
Есть плата последовательных портов от Advantech, MIC-3612.
Драйвер для Linux нормально работает с ядром 3.0, а с 3.2 уже
не компилируется. В ядре в include/linux/serial_core.h в структуре
uart_port уменьшили количество типов - это не проблема, в структуре
uart_state удалили элемент
struct tasklet_struct *tlet;
а в драйвере для tlet трижды вызывается
tasklet_schedule(tlet);
это я закомментировал, а главная трудность - в tty.h теперь нет функции
tty_locked(), а драйвер её существенно использует. Без неё или
с попытками её заменить чем-то другим драйвер не работает, в лучшем случае
срабаттывает один раз.
В ядре 3.0 в include/linux/tty.h есть определения:
extern struct task_struct *__big_tty_mutex_owner;
#define tty_locked() (current == __big_tty_mutex_owner)
а в ядре 3.2 их нет и я пока не понял, чем заменить tty_locked().
Я оставил запрос на сайте Advantech, но, м.б., кто-нибудь уже знает решение?
Пётр.