summaryrefslogtreecommitdiffstats
path: root/arch/s390/pci
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2013-08-29 19:38:33 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-08-30 08:57:18 +0200
commitd03abe5882cc4815bf98c0e01a1deafa4a5d6730 (patch)
treea255145e80f4f0593b89aef58a20ef497f874c8e /arch/s390/pci
parent1d57896638f080165165dd9fb4cf848220dfd853 (diff)
downloadlinux-d03abe5882cc4815bf98c0e01a1deafa4a5d6730.tar.bz2
s390/pci: try harder to modify a function
In rare situations a PCI function can report a busy condition when we issue the modify pci function command. A temporary busy condition can exceed 1 second but not 2 seconds. Increase the time until we report an error to 2 seconds. Also increase the time we sleep between the retries to reduce the load in this case. Suggested-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/pci')
-rw-r--r--arch/s390/pci/pci_clp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c
index 70db060b4d41..3eaf63a6ecac 100644
--- a/arch/s390/pci/pci_clp.c
+++ b/arch/s390/pci/pci_clp.c
@@ -179,7 +179,7 @@ error:
static int clp_set_pci_fn(u32 *fh, u8 nr_dma_as, u8 command)
{
struct clp_req_rsp_set_pci *rrb;
- int rc, retries = 1000;
+ int rc, retries = 100;
rrb = clp_alloc_block(GFP_KERNEL);
if (!rrb)
@@ -199,7 +199,7 @@ static int clp_set_pci_fn(u32 *fh, u8 nr_dma_as, u8 command)
retries--;
if (retries < 0)
break;
- msleep(1);
+ msleep(20);
}
} while (rrb->response.hdr.rsp == CLP_RC_SETPCIFN_BUSY);