Подскажите кто знает!
Читаю-пишу в ttyS0 из прерывания таймера примерно так:
void ndt_irq (unsigned long data)
{
spin_lock_bh(&timer_lock);
struct my_buf *tbf;
tbf = &rbuffer;
fs=get_fs();
set_fs(KERNEL_DS);
if (f && f->f_dentry && f->f_op && f->f_op->read) {
.......
retval = f->f_op->read(f, &tbf->rc, 1, &f->f_pos);
........
f->f_op->write(f, "NICHEVO NE CHITAET", 18, &f->f_pos);
if (retval <= 0) printk("<0> ^tstnd: READE returns: %d\n", retval);
}
else printk("<0> ^tstnd: stuct FILE is empty\n");
set_fs(fs);
mod_timer(&timer, jiffies + HZ);
spin_unlock_bh(&timer_lock);
}
Передаётся всё нормально, но ничего не читает. Возвращает код -11 (типа: пилите Шура - они золотые)
Если циклить на чтении - пилит до бесконечности.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Трабл с модулем (2005)
- Форум отладка работы sys_read() -> file->f_op->read() (2010)
- Форум F# (2008)
- Форум f(void) vs f() (2008)
- Форум f(f(f(x))) - как записать короче (2019)
- Форум read (2005)
- Форум Ctrl+F (2012)
- Форум F*, кодогенерация (2015)
- Форум F# match (2013)
- Форум [F#] apply (2012)