Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54c27791 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

s390/pfault: always search for task with reported pid



Make the code a bit more symmetric and always search for the task of the
reported pid. This simplifies the code a bit.

Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent d5e50a51
Loading
Loading
Loading
Loading
+10 −14
Original line number Diff line number Diff line
@@ -549,7 +549,6 @@ static void pfault_interrupt(struct ext_code ext_code,
	if ((subcode & 0xff00) != __SUBCODE_MASK)
		return;
	kstat_cpu(smp_processor_id()).irqs[EXTINT_PFL]++;
	if (subcode & 0x0080) {
	/* Get the token (= pid of the affected task). */
	pid = sizeof(void *) == 4 ? param32 : param64;
	rcu_read_lock();
@@ -559,9 +558,6 @@ static void pfault_interrupt(struct ext_code ext_code,
	rcu_read_unlock();
	if (!tsk)
		return;
	} else {
		tsk = current;
	}
	spin_lock(&pfault_lock);
	if (subcode & 0x0080) {
		/* signal bit is set -> a page has been swapped in by VM */
@@ -586,7 +582,6 @@ static void pfault_interrupt(struct ext_code ext_code,
			if (tsk->state == TASK_RUNNING)
				tsk->thread.pfault_wait = -1;
		}
		put_task_struct(tsk);
	} else {
		/* signal bit not set -> a real page is missing. */
		if (tsk->thread.pfault_wait == 1) {
@@ -612,6 +607,7 @@ static void pfault_interrupt(struct ext_code ext_code,
		}
	}
	spin_unlock(&pfault_lock);
	put_task_struct(tsk);
}

static int __cpuinit pfault_cpu_notify(struct notifier_block *self,