[S390] qdio: 2nd stage retry on SIGA-W busy conditions
authorJan Glauber <jang@linux.vnet.ibm.com>
Wed, 3 Aug 2011 14:44:17 +0000 (16:44 +0200)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 3 Aug 2011 14:44:19 +0000 (16:44 +0200)
commitbe8d97a540cec5d272b1e08e27741a3c3aa38f66
tree39fc55cde3cdf81aea341dd1de1d2957988b97b1
parented8f37370d83e695c0a4fa5d5fc7a83ecb947526
[S390] qdio: 2nd stage retry on SIGA-W busy conditions

The SIGA-W may return with the busy bit set which means the device was
blocked. The busy loop which retries the SIGA-W for 100us may not be
long enough when running under a heavily loaded hypervisor.

Extend the retry mechanism by adding a longer second stage which retries
the SIGA-W for up to 10s. In difference to the first retry loop the second
stage is using mdelay to stop the cpu between the retries and thereby
avoid additional preassure in on the hypervisor.
If the second stage retry is successfull a device reset is avoided.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_main.c