summaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2011-01-05 12:47:49 +0100
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-01-05 12:47:28 +0100
commit4f325184f2d4c1f2258873b2a333005dc4dfcbc0 (patch)
treee69a7940ca8d51a6e1f639cf4df0b5e33925d357 /drivers/s390/scsi
parent[S390] Handling of 4096 bit RSA keys in CRT format. (diff)
downloadlinux-4f325184f2d4c1f2258873b2a333005dc4dfcbc0.tar.xz
linux-4f325184f2d4c1f2258873b2a333005dc4dfcbc0.zip
[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