diff options
| author | 2011-11-29 14:50:17 +0000 | |
|---|---|---|
| committer | 2011-11-29 14:50:17 +0000 | |
| commit | 98014be39bda8277a5ad130bb274ed6eb18b74df (patch) | |
| tree | 974620a47c9350ff9b3c06ffd2b49470bbda72ab /arch/s390/mm/fault.c | |
| parent | Merge branch 'fixes-dss' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes (diff) | |
| parent | ARM: ux500: update defconfig (diff) | |
| download | wireguard-linux-98014be39bda8277a5ad130bb274ed6eb18b74df.tar.xz wireguard-linux-98014be39bda8277a5ad130bb274ed6eb18b74df.zip | |
Merge branch 'defconfigs-for-arnd' of git://git.linaro.org/people/triad/linux-stericsson into fixes
Diffstat (limited to 'arch/s390/mm/fault.c')
| -rw-r--r-- | arch/s390/mm/fault.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 1766def5bc3f..a9a301866b3c 100644 --- a/arch/s390/mm/fault.c +++ b/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 { |
