aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
-rw-r--r--drivers/s390/cio/qdio_main.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 9a122280246c..6547ff469410 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -160,7 +160,8 @@ again:
160 DBF_ERROR("%3d%3d%2d", count, tmp_count, nr); 160 DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
161 q->handler(q->irq_ptr->cdev, 161 q->handler(q->irq_ptr->cdev,
162 QDIO_ERROR_ACTIVATE_CHECK_CONDITION, 162 QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
163 0, -1, -1, q->irq_ptr->int_parm); 163 q->nr, q->first_to_kick, count,
164 q->irq_ptr->int_parm);
164 return 0; 165 return 0;
165 } 166 }
166 return count - tmp_count; 167 return count - tmp_count;
@@ -206,7 +207,8 @@ again:
206 DBF_ERROR("%3d%3d%2d", count, tmp_count, nr); 207 DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
207 q->handler(q->irq_ptr->cdev, 208 q->handler(q->irq_ptr->cdev,
208 QDIO_ERROR_ACTIVATE_CHECK_CONDITION, 209 QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
209 0, -1, -1, q->irq_ptr->int_parm); 210 q->nr, q->first_to_kick, count,
211 q->irq_ptr->int_parm);
210 return 0; 212 return 0;
211 } 213 }
212 WARN_ON(tmp_count); 214 WARN_ON(tmp_count);
@@ -1070,6 +1072,7 @@ static void qdio_handle_activate_check(struct ccw_device *cdev,
1070{ 1072{
1071 struct qdio_irq *irq_ptr = cdev->private->qdio_data; 1073 struct qdio_irq *irq_ptr = cdev->private->qdio_data;
1072 struct qdio_q *q; 1074 struct qdio_q *q;
1075 int count;
1073 1076
1074 DBF_ERROR("%4x ACT CHECK", irq_ptr->schid.sch_no); 1077 DBF_ERROR("%4x ACT CHECK", irq_ptr->schid.sch_no);
1075 DBF_ERROR("intp :%lx", intparm); 1078 DBF_ERROR("intp :%lx", intparm);
@@ -1083,8 +1086,10 @@ static void qdio_handle_activate_check(struct ccw_device *cdev,
1083 dump_stack(); 1086 dump_stack();
1084 goto no_handler; 1087 goto no_handler;
1085 } 1088 }
1089
1090 count = sub_buf(q->first_to_check, q->first_to_kick);
1086 q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION, 1091 q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
1087 0, -1, -1, irq_ptr->int_parm); 1092 q->nr, q->first_to_kick, count, irq_ptr->int_parm);
1088no_handler: 1093no_handler:
1089 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED); 1094 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED);
1090} 1095}