Повторяю тред ,так как предыдущий неправильно запостил. Имеется модуль ядра,kernel 2.2.14(RedHat 6.2)... По прерыванию из bottom-half обработчика прерывания посылается сигнал юзерскому процесу таким образом: код: ... ... struct XXX_cbd { unsigned long signature; void (*isr)(void); struct sigaction sa; sigset_t mask; }; ... struct siginfo info; info.si_signo = dev->callback[channel].signo; info.si_errno = channel;info.si_code = SI_MESGQ;// must be < 0 for info.si_ptr info.si_pid = 0; /* sending from kernel */ info.si_uid = 0; info.si_ptr = dev->callback[channel].context; /* XXX_cbd struct*/ send_sig_info(info.si_signo, &info, dev->callback[channel].process); --------------------------------------------------------------------- По приходу в юзерский обработччик: код: static void XXX_signal_handler(int signo, siginfo_t * siginfo, void * arg) { if(signo == SIGUSR2 && siginfo->si_signo == SIGUSR2 && siginfo->si_code == SI_MESGQ && siginfo->si_pid == 0 && siginfo->si_uid == 0) { struct XXX_cbd * cptr = (struct DM6420HR_cbd *)siginfo->si_ptr; if(cptr->signature == magic_signature && cptr->isr != NULL) (*cptr->isr)(); } } --------------------------------------------------------------------- Наблюдаются странные вещи: siginfo->si_code не равно SI_MESGQ а равно 0 siginfo->si_uid не равно 0 а равно к примеру C0A30000 а siginfo->si_ptr приходит вообще равным NULL вместо того что бы указывать куда надо... В чём может быть дело? ЗЫ. В RedHat 7.3 ( kernel 2.4.18) всё работает правильно. Пытался посылать сигнал не из bottom-half обработчика(mark_bh(IMMEDIATE_BH) ) а также непосредственно из обработчика прерывания - результат тот же.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Искажается информация о сигнале при прохождении оного из kernel 2.2 в user-space (Red Hat 6.2) (2003)
- Форум Некорректная работа учебной программы обработки сигналов (2012)
- Форум user space <-> kernel space (2010)
- Форум User space and Kernel space (2005)
- Форум Стример RED Hat 6.2 (2001)
- Форум LINUX RED HAT 6.2 (2002)
- Форум Red Hat Enterprise Linux 6.2 (2012)
- Новости Red Hat Enterprise Linux 6.2 (2011)
- Форум Установка линуха Red Hat 6.2 (2003)
- Форум Red Hat 6.2 и Windows (2001)