From 24cba24bde5a554bcc28bf2686dc07716fa41e81 Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Sat, 3 Sep 2005 15:58:02 -0700 Subject: [PATCH] --- yaml --- r: 7051 b: refs/heads/master c: b6d09449d53f5aa7c67b1be3e90d7b7ab2aad09c h: refs/heads/master i: 7049: c1a10cdbcc6575a9dda9a98b26684e9eb223ffcf 7047: 9f98532d7ea3f6829cc5b5964b2f181a014b0f2c v: v3 --- [refs] | 2 +- trunk/arch/s390/mm/fault.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 270848e26e62..c42f4516818d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4c24da79e29537f0e240a331220a1c46cb9bc085 +refs/heads/master: b6d09449d53f5aa7c67b1be3e90d7b7ab2aad09c diff --git a/trunk/arch/s390/mm/fault.c b/trunk/arch/s390/mm/fault.c index 75fde949d125..856a971759b1 100644 --- a/trunk/arch/s390/mm/fault.c +++ b/trunk/arch/s390/mm/fault.c @@ -563,12 +563,14 @@ pfault_interrupt(struct pt_regs *regs, __u16 error_code) * interrupt. pfault_wait is valid. Set pfault_wait * back to zero and wake up the process. This can * safely be done because the task is still sleeping - * and can't procude new pfaults. */ + * and can't produce new pfaults. */ tsk->thread.pfault_wait = 0; wake_up_process(tsk); + put_task_struct(tsk); } } else { /* signal bit not set -> a real page is missing. */ + get_task_struct(tsk); set_task_state(tsk, TASK_UNINTERRUPTIBLE); if (xchg(&tsk->thread.pfault_wait, 1) != 0) { /* Completion interrupt was faster than the initial @@ -578,6 +580,7 @@ pfault_interrupt(struct pt_regs *regs, __u16 error_code) * mode and can't produce new pfaults. */ tsk->thread.pfault_wait = 0; set_task_state(tsk, TASK_RUNNING); + put_task_struct(tsk); } else set_tsk_need_resched(tsk); }