]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/net/qeth_core_main.c
[S390] qdio: fix qeth port count detection
[linux-2.6-omap-h63xx.git] / drivers / s390 / net / qeth_core_main.c
index 52d26592c72c1a03ee640710d148d3aa44a1b781..ebdc549da537affc2dacce1c9bbac18c38d7ffd7 100644 (file)
@@ -3757,7 +3757,7 @@ static int qeth_core_driver_group(const char *buf, struct device *root_dev,
 
 int qeth_core_hardsetup_card(struct qeth_card *card)
 {
-       struct qdio_ssqd_desc *qdio_ssqd;
+       struct qdio_ssqd_desc *ssqd;
        int retries = 3;
        int mpno = 0;
        int rc;
@@ -3792,9 +3792,16 @@ retry:
                return rc;
        }
 
-       qdio_ssqd = qdio_get_ssqd_desc(CARD_DDEV(card));
-       if (qdio_ssqd)
-               mpno = qdio_ssqd->pcnt;
+       ssqd = kmalloc(sizeof(struct qdio_ssqd_desc), GFP_KERNEL);
+       if (!ssqd) {
+               rc = -ENOMEM;
+               goto out;
+       }
+       rc = qdio_get_ssqd_desc(CARD_DDEV(card), ssqd);
+       if (rc == 0)
+               mpno = ssqd->pcnt;
+       kfree(ssqd);
+
        if (mpno)
                mpno = min(mpno - 1, QETH_MAX_PORTNO);
        if (card->info.portno > mpno) {