1

在某些 PCI 硬件的设备驱动程序中,我有一个ioctl调用来等待 PCI 总线上的传入中断。使用wait_queue_head_t,我通过调用 使任务进入睡眠状态schedule()

然后,该irq_handler函数在 PCI 总线上产生中断时唤醒该任务。一切似乎都正常工作。

我的问题是如何区分schedule()调用返回是因为我的irq_handler函数唤醒它,还是因为已经发送了一些信号?

我是否必须使用函数中的标志自己处理它irq_handler

4

1 回答 1

2

schedule在通话之后,类似这样的事情:

if (signal_pending(current)) {
    retval = -EINTR;
于 2009-12-02T12:25:11.957 回答