summaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2005-09-04 02:58:02 +0400
committerLinus Torvalds <torvalds@evo.osdl.org>2005-09-05 11:06:28 +0400
commitb6d09449d53f5aa7c67b1be3e90d7b7ab2aad09c (patch)
tree37386fada73b07e6028b76ed58a9f59215f8de43 /drivers/s390
parent4c24da79e29537f0e240a331220a1c46cb9bc085 (diff)
downloadlinux-b6d09449d53f5aa7c67b1be3e90d7b7ab2aad09c.tar.xz
[PATCH] s390: pfault interrupt race
There is a race in pfault_interrupt. That function gets called two times for each pfault notification. Once with a subcode of 0 to indicate that a real page is not available and once with a subcode of 0x80 to indicate that the page is present again. Since the two external interrupts can be delivered on two different cpus the order in which the two calls are made is unpredictable. It is possible that the subcode 0x80 interrupt is completed before the subcode 0x00 interrupt has done the wake_up() call. To avoid calling wake_up() on an already removed task structure proper task structure reference counting is needed. Increase the reference counter in the subcode 0x00 interrupt before setting pfault_wait to zero and return the reference after the wake_up call. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/s390')
0 files changed, 0 insertions, 0 deletions