提交 fa2fb2f4 编写于 作者: H Heiko Carstens 提交者: Martin Schwidefsky

[S390] pfault: ignore leftover completion interrupts

Ignore completion interrupts if the initial interrupt hasn't been
received and the addressed task is not running. This case can only
happen if leftover (pending) completion interrupt gets delivered
which wasn't removed with the PFAULT CANCEL operation during cpu
hotplug.
Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
上级 09b53883
...@@ -587,8 +587,13 @@ static void pfault_interrupt(unsigned int ext_int_code, ...@@ -587,8 +587,13 @@ static void pfault_interrupt(unsigned int ext_int_code,
} else { } else {
/* Completion interrupt was faster than initial /* Completion interrupt was faster than initial
* interrupt. Set pfault_wait to -1 so the initial * interrupt. Set pfault_wait to -1 so the initial
* interrupt doesn't put the task to sleep. */ * interrupt doesn't put the task to sleep.
tsk->thread.pfault_wait = -1; * If the task is not running, ignore the completion
* interrupt since it must be a leftover of a PFAULT
* CANCEL operation which didn't remove all pending
* completion interrupts. */
if (tsk->state == TASK_RUNNING)
tsk->thread.pfault_wait = -1;
} }
put_task_struct(tsk); put_task_struct(tsk);
} else { } else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册