aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/char/sclp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/char/sclp.c')
-rw-r--r--drivers/s390/char/sclp.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c
index ceb0e474fde4..4138564402b8 100644
--- a/drivers/s390/char/sclp.c
+++ b/drivers/s390/char/sclp.c
@@ -85,11 +85,10 @@ static volatile enum sclp_mask_state_t {
85/* Maximum retry counts */ 85/* Maximum retry counts */
86#define SCLP_INIT_RETRY 3 86#define SCLP_INIT_RETRY 3
87#define SCLP_MASK_RETRY 3 87#define SCLP_MASK_RETRY 3
88#define SCLP_REQUEST_RETRY 3
89 88
90/* Timeout intervals in seconds.*/ 89/* Timeout intervals in seconds.*/
91#define SCLP_BUSY_INTERVAL 2 90#define SCLP_BUSY_INTERVAL 10
92#define SCLP_RETRY_INTERVAL 5 91#define SCLP_RETRY_INTERVAL 15
93 92
94static void sclp_process_queue(void); 93static void sclp_process_queue(void);
95static int sclp_init_mask(int calculate); 94static int sclp_init_mask(int calculate);
@@ -153,11 +152,9 @@ __sclp_start_request(struct sclp_req *req)
153 if (sclp_running_state != sclp_running_state_idle) 152 if (sclp_running_state != sclp_running_state_idle)
154 return 0; 153 return 0;
155 del_timer(&sclp_request_timer); 154 del_timer(&sclp_request_timer);
156 if (req->start_count <= SCLP_REQUEST_RETRY) { 155 rc = service_call(req->command, req->sccb);
157 rc = service_call(req->command, req->sccb); 156 req->start_count++;
158 req->start_count++; 157
159 } else
160 rc = -EIO;
161 if (rc == 0) { 158 if (rc == 0) {
162 /* Sucessfully started request */ 159 /* Sucessfully started request */
163 req->status = SCLP_REQ_RUNNING; 160 req->status = SCLP_REQ_RUNNING;