aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio_main.c
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2008-12-25 07:38:43 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2008-12-25 07:38:58 -0500
commitbbd50e172f75b1d12ef9b1bcf593b51a44199016 (patch)
tree85cffdd66bb9f4da36d604d857959964736f3fde /drivers/s390/cio/qdio_main.c
parent43c207e6e5b7e591b59294ee4fc9860b0e3de3b8 (diff)
[S390] qdio: fix qeth port count detection
qeth needs to get the port count information before qdio has allocated a page for the chsc operation. Extend qdio_get_ssqd_desc() to store the data in the specified structure. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
-rw-r--r--drivers/s390/cio/qdio_main.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 7c8659151993..7572a0057623 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -1129,23 +1129,23 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
1129/** 1129/**
1130 * qdio_get_ssqd_desc - get qdio subchannel description 1130 * qdio_get_ssqd_desc - get qdio subchannel description
1131 * @cdev: ccw device to get description for 1131 * @cdev: ccw device to get description for
1132 * @data: where to store the ssqd
1132 * 1133 *
1133 * Returns a pointer to the saved qdio subchannel description, 1134 * Returns 0 or an error code. The results of the chsc are stored in the
1134 * or NULL for not setup qdio devices. 1135 * specified structure.
1135 */ 1136 */
1136struct qdio_ssqd_desc *qdio_get_ssqd_desc(struct ccw_device *cdev) 1137int qdio_get_ssqd_desc(struct ccw_device *cdev,
1138 struct qdio_ssqd_desc *data)
1137{ 1139{
1138 struct qdio_irq *irq_ptr;
1139 char dbf_text[15]; 1140 char dbf_text[15];
1140 1141
1142 if (!cdev || !cdev->private)
1143 return -EINVAL;
1144
1141 sprintf(dbf_text, "qssq%4x", cdev->private->schid.sch_no); 1145 sprintf(dbf_text, "qssq%4x", cdev->private->schid.sch_no);
1142 QDIO_DBF_TEXT0(0, setup, dbf_text); 1146 QDIO_DBF_TEXT0(0, setup, dbf_text);
1143 1147
1144 irq_ptr = cdev->private->qdio_data; 1148 return qdio_setup_get_ssqd(NULL, &cdev->private->schid, data);
1145 if (!irq_ptr)
1146 return NULL;
1147
1148 return &irq_ptr->ssqd_desc;
1149} 1149}
1150EXPORT_SYMBOL_GPL(qdio_get_ssqd_desc); 1150EXPORT_SYMBOL_GPL(qdio_get_ssqd_desc);
1151 1151