summaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2010-11-25 11:52:46 +0300
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2010-11-25 11:52:59 +0300
commit4814a2b3c603438ed8c330c74b49aa662b1ede43 (patch)
tree34ee08991ea06dc467638f94ff5cc8ea400b18ed /drivers/s390
parente8129c642155616d9e2160a75f103e127c8c3708 (diff)
downloadlinux-4814a2b3c603438ed8c330c74b49aa662b1ede43.tar.xz
[S390] qdio: free indicator after reset is finished
The qdio device indicator is freed before the device is notified that the indicator is reset. This sequence contains a race when the freed indicator is used by a new device while the reset of the indicator is still pending. Do the reset operation before freeing the indicator to avoid that potential race. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/cio/qdio_thinint.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index 752dbee06af5..5d9c66627b6e 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -292,8 +292,8 @@ void qdio_shutdown_thinint(struct qdio_irq *irq_ptr)
return;
/* reset adapter interrupt indicators */
- put_indicator(irq_ptr->dsci);
set_subchannel_ind(irq_ptr, 1);
+ put_indicator(irq_ptr->dsci);
}
void __exit tiqdio_unregister_thinints(void)