summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUrsula Braun <braunu@de.ibm.com>2008-04-24 10:15:26 +0200
committerJeff Garzik <jgarzik@redhat.com>2008-04-29 01:56:34 -0400
commita74b08c7fcfc49727cb9e4409ec0410674410c93 (patch)
tree3430256acc3b5e1c475e80ea3ce0290589fa3b99
parent8af7c5aebc9a7b46f6ea55ee5a216dce4005f538 (diff)
downloadop-kernel-dev-a74b08c7fcfc49727cb9e4409ec0410674410c93.zip
op-kernel-dev-a74b08c7fcfc49727cb9e4409ec0410674410c93.tar.gz
qeth: read number of ports from card
Read out number of ports from the hardware. Signed-off-by: Ursula Braun <braunu@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r--drivers/s390/net/qeth_core_main.c5
-rw-r--r--include/asm-s390/qdio.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 820c332..436bf1f 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -3803,8 +3803,9 @@ retry:
QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc);
return rc;
}
-
- mpno = QETH_MAX_PORTNO;
+ mpno = qdio_get_ssqd_pct(CARD_DDEV(card));
+ if (mpno)
+ mpno = min(mpno - 1, QETH_MAX_PORTNO);
if (card->info.portno > mpno) {
PRINT_ERR("Device %s does not offer port number %d \n.",
CARD_BUS_ID(card), card->info.portno);
diff --git a/include/asm-s390/qdio.h b/include/asm-s390/qdio.h
index 4b8ff55..1124034 100644
--- a/include/asm-s390/qdio.h
+++ b/include/asm-s390/qdio.h
@@ -127,6 +127,7 @@ extern int do_QDIO(struct ccw_device*, unsigned int flags,
unsigned int qidx,unsigned int count,
struct qdio_buffer *buffers);
+extern int qdio_get_ssqd_pct(struct ccw_device*);
extern int qdio_synchronize(struct ccw_device*, unsigned int flags,
unsigned int queue_number);
OpenPOWER on IntegriCloud