qeth: No large send using EDDP for HiperSockets.
authorKlaus-Dieter Wacker <kdwacker@de.ibm.com>
Mon, 5 Jan 2009 01:36:05 +0000 (17:36 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Jan 2009 01:36:05 +0000 (17:36 -0800)
From: Klaus-Dieter Wacker <kdwacker@de.ibm.com>

The device driver qeth dos not support large send using EDDP for
HiperSockets.

Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core_main.c

index 4a2ac0c8cef98600abecd937e4d0ee6874122ba6..6811dd529f48ca32029ca32f879869f365573951 100644 (file)
@@ -287,8 +287,15 @@ int qeth_set_large_send(struct qeth_card *card,
        card->options.large_send = type;
        switch (card->options.large_send) {
        case QETH_LARGE_SEND_EDDP:
-               card->dev->features |= NETIF_F_TSO | NETIF_F_SG |
+               if (card->info.type != QETH_CARD_TYPE_IQD) {
+                       card->dev->features |= NETIF_F_TSO | NETIF_F_SG |
                                        NETIF_F_HW_CSUM;
+               } else {
+                       card->dev->features &= ~(NETIF_F_TSO | NETIF_F_SG |
+                                               NETIF_F_HW_CSUM);
+                       card->options.large_send = QETH_LARGE_SEND_NO;
+                       rc = -EOPNOTSUPP;
+               }
                break;
        case QETH_LARGE_SEND_TSO:
                if (qeth_is_supported(card, IPA_OUTBOUND_TSO)) {