summaryrefslogtreecommitdiff
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2011-01-05 11:47:49 (GMT)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-01-05 11:47:28 (GMT)
commit4f325184f2d4c1f2258873b2a333005dc4dfcbc0 (patch)
treee69a7940ca8d51a6e1f639cf4df0b5e33925d357 /drivers/s390/scsi
parent078f8ecaa30718694d1e13d9f415b7ce75b3c968 (diff)
downloadlinux-fsl-qoriq-4f325184f2d4c1f2258873b2a333005dc4dfcbc0.tar.xz
[S390] qdio: prevent race for shared indicators
If the shared indicator is used the following race leads to an inbound stall: Device CPU0 CPU1 ======================================================== non-shared DSCI =>1 ALSI => 1 Thin INT ALSI => 0 non-shared DSCI tasklets scheduled shared DSCI => 1 ALSI => 1 shared DSCI => 0 ALSI ? -> set Thin INT ALSI => 0 ALSI was set, shared DSCI => 1 After that no more interrupts occur because the DSCI is still set. Fix that race by only resetting the shared DSCI if it was actually set so the tasklets for all shared devices are scheduled and will run after the interrupt. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/scsi')
0 files changed, 0 insertions, 0 deletions