aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-10-28 19:44:18 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-10-28 19:44:18 -0400
commitec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954 (patch)
treee6b0c64a51a7c0aa0efd09d4f7a80872e3b1657a /drivers/s390/cio
parent97d2eb13a019ec09cc1a7ea2d3705c0b117b3c0d (diff)
parent590134fa78fbdbe5fea78c7ae0b2c3364bc9572f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (204 commits) [SCSI] qla4xxx: export address/port of connection (fix udev disk names) [SCSI] ipr: Fix BUG on adapter dump timeout [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer [SCSI] hpsa: change confusing message to be more clear [SCSI] iscsi class: fix vlan configuration [SCSI] qla4xxx: fix data alignment and use nl helpers [SCSI] iscsi class: fix link local mispelling [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA [SCSI] aacraid: use lower snprintf() limit [SCSI] lpfc 8.3.27: Change driver version to 8.3.27 [SCSI] lpfc 8.3.27: T10 additions for SLI4 [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes [SCSI] megaraid_sas: Changelog and version update [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts ...
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r--drivers/s390/cio/qdio_main.c11
-rw-r--r--drivers/s390/cio/qdio_setup.c1
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 9a122280246..6547ff46941 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}
diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c
index dd8bd670a6b..d9a46a429bc 100644
--- a/drivers/s390/cio/qdio_setup.c
+++ b/drivers/s390/cio/qdio_setup.c
@@ -381,6 +381,7 @@ static void setup_qdr(struct qdio_irq *irq_ptr,
381 int i; 381 int i;
382 382
383 irq_ptr->qdr->qfmt = qdio_init->q_format; 383 irq_ptr->qdr->qfmt = qdio_init->q_format;
384 irq_ptr->qdr->ac = qdio_init->qdr_ac;
384 irq_ptr->qdr->iqdcnt = qdio_init->no_input_qs; 385 irq_ptr->qdr->iqdcnt = qdio_init->no_input_qs;
385 irq_ptr->qdr->oqdcnt = qdio_init->no_output_qs; 386 irq_ptr->qdr->oqdcnt = qdio_init->no_output_qs;
386 irq_ptr->qdr->iqdsz = sizeof(struct qdesfmt0) / 4; /* size in words */ 387 irq_ptr->qdr->iqdsz = sizeof(struct qdesfmt0) / 4; /* size in words */