From f79d6afc3b7f23ae1923ebccda0617eb760d05a4 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 14 Nov 2011 11:19:01 +0100 Subject: [PATCH] --- yaml --- r: 275503 b: refs/heads/master c: fa2fb2f4a599c402bb2670dde27867dbbb7e3c45 h: refs/heads/master i: 275501: 58cf7e9719f60a7037b75d9af96b0a7fc9d31463 275499: 480495e0768c04fe25e19205c2732026a5f3a41e 275495: 2cc787bbdf4aba0f36905cedb606f5841bdea54c 275487: e39b54106c57bf184aca3a41bb9fd36928d8ca46 v: v3 --- [refs] | 2 +- trunk/arch/s390/mm/fault.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 18a21ea6b8f8..398c53657d6c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 09b538833b85521d937a06faf61e6a3273253cc0 +refs/heads/master: fa2fb2f4a599c402bb2670dde27867dbbb7e3c45 diff --git a/trunk/arch/s390/mm/fault.c b/trunk/arch/s390/mm/fault.c index 1766def5bc3f..a9a301866b3c 100644 --- a/trunk/arch/s390/mm/fault.c +++ b/trunk/arch/s390/mm/fault.c @@ -587,8 +587,13 @@ static void pfault_interrupt(unsigned int ext_int_code, } else { /* Completion interrupt was faster than initial * interrupt. Set pfault_wait to -1 so the initial - * interrupt doesn't put the task to sleep. */ - tsk->thread.pfault_wait = -1; + * interrupt doesn't put the task to sleep. + * 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); } else {